| /* |
| ----------------------------------------------------------------------- |
| -- CHESS core plugin -- |
| -- -- |
| -- Copyright (C) 2011-2012 -- |
| -- University of Padova, ITALY -- |
| -- -- |
| -- Author: Alessandro Zovi azovi@math.unipd.it -- |
| -- -- |
| -- All rights reserved. This program and the accompanying materials -- |
| -- are made available under the terms of the Eclipse Public License -- |
| -- v1.0 which accompanies this distribution, and is available at -- |
| -- http://www.eclipse.org/legal/epl-v20.html -- |
| ----------------------------------------------------------------------- |
| */ |
| |
| package org.polarsys.chess.core.constraint; |
| |
| import org.eclipse.core.runtime.IStatus; |
| import org.eclipse.core.runtime.Status; |
| import org.eclipse.emf.validation.internal.util.TextUtils; |
| |
| /** |
| * Extends {@link Status} in order to allow the setting of properties that in Status are readonly. |
| * |
| */ |
| public class SettableStatus extends Status { |
| |
| /** The message pattern. */ |
| String messagePattern; |
| |
| /** |
| * Creates a SettableStatus object, see {@link Status#Status(int, String, String)}. |
| * |
| * @param severity the severity |
| * @param pluginId the plugin id |
| * @param messagePattern the message pattern |
| */ |
| public SettableStatus(int severity, String pluginId, String messagePattern) { |
| super(severity, pluginId, messagePattern); |
| this.messagePattern = messagePattern; |
| } |
| |
| /** |
| * Changes the internal code. |
| * |
| * @param ok set the code to IStatus.OK if true, IStatus.ERROR otherwise |
| */ |
| public void setSuccess(boolean ok) { |
| setCode(ok ? IStatus.OK : IStatus.ERROR); |
| } |
| |
| /** |
| * Sets the message. |
| * |
| * @param messagePattern the message |
| */ |
| public void setMessagePattern(String messagePattern) { |
| this.messagePattern = messagePattern; |
| super.setMessage(messagePattern); |
| } |
| |
| /** |
| * Sets the message arguments if the message is a pattern. |
| * |
| * @param messageArgs the new message |
| */ |
| public void setMessage(Object... messageArgs) { |
| |
| String message = TextUtils.formatMessage(messagePattern, |
| (messageArgs == null) ? new Object[0] : messageArgs); |
| super.setMessage(message); |
| } |
| |
| /* (non-Javadoc) |
| * @see org.eclipse.core.runtime.Status#isOK() |
| */ |
| public boolean isOK() { |
| return getCode() == IStatus.OK; |
| } |
| |
| } |