Copyright (c) 2000, 2015 IBM Corporation and others. This program and the accompanying materials are made available under the terms of the Eclipse Public License 2.0 which accompanies this distribution, and is available at https://www.eclipse.org/legal/epl-2.0/ SPDX-License-Identifier: EPL-2.0 Contributors: IBM Corporation - initial API and implementation
/******************************************************************************* * Copyright (c) 2000, 2015 IBM Corporation and others. * * This program and the accompanying materials * are made available under the terms of the Eclipse Public License 2.0 * which accompanies this distribution, and is available at * https://www.eclipse.org/legal/epl-2.0/ * * SPDX-License-Identifier: EPL-2.0 * * Contributors: * IBM Corporation - initial API and implementation *******************************************************************************/
package org.eclipse.core.runtime; import org.eclipse.core.internal.runtime.LocalizationUtils;
A concrete status implementation, suitable either for instantiating or subclassing.

This class can be used without OSGi running.

/** * A concrete status implementation, suitable either for * instantiating or subclassing. * <p> * This class can be used without OSGi running. * </p> */
public class Status implements IStatus {
Constant used to indicate an unknown plugin id.
/** * Constant used to indicate an unknown plugin id. */
private static final String unknownId = "unknown"; //$NON-NLS-1$
A standard OK status with an "ok" message.
Since:3.0
/** * A standard OK status with an "ok" message. * * @since 3.0 */
public static final IStatus OK_STATUS = new Status(OK, unknownId, OK, LocalizationUtils.safeLocalize("ok"), null); //$NON-NLS-1$
A standard CANCEL status with no message.
Since:3.0
/** * A standard CANCEL status with no message. * * @since 3.0 */
public static final IStatus CANCEL_STATUS = new Status(CANCEL, unknownId, 1, "", null); //$NON-NLS-1$
The severity. One of
  • CANCEL
  • ERROR
  • WARNING
  • INFO
  • or OK (0)
/** * The severity. One of * <ul> * <li><code>CANCEL</code></li> * <li><code>ERROR</code></li> * <li><code>WARNING</code></li> * <li><code>INFO</code></li> * <li>or <code>OK</code> (0)</li> * </ul> */
private int severity = OK;
Unique identifier of plug-in.
/** Unique identifier of plug-in. */
private String pluginId;
Plug-in-specific status code.
/** Plug-in-specific status code. */
private int code;
Message, localized to the current locale.
/** Message, localized to the current locale. */
private String message;
Wrapped exception, or null if none.
/** Wrapped exception, or <code>null</code> if none. */
private Throwable exception = null;
Constant to avoid generating garbage.
/** Constant to avoid generating garbage. */
private static final IStatus[] theEmptyStatusArray = new IStatus[0];
Creates a new status object. The created status has no children.
Params:
  • severity – the severity; one of OK, ERROR, INFO, WARNING, or CANCEL
  • pluginId – the unique identifier of the relevant plug-in
  • code – the plug-in-specific status code, or OK
  • message – a human-readable message, localized to the current locale
  • exception – a low-level exception, or null if not applicable
/** * Creates a new status object. The created status has no children. * * @param severity the severity; one of <code>OK</code>, <code>ERROR</code>, * <code>INFO</code>, <code>WARNING</code>, or <code>CANCEL</code> * @param pluginId the unique identifier of the relevant plug-in * @param code the plug-in-specific status code, or <code>OK</code> * @param message a human-readable message, localized to the * current locale * @param exception a low-level exception, or <code>null</code> if not * applicable */
public Status(int severity, String pluginId, int code, String message, Throwable exception) { setSeverity(severity); setPlugin(pluginId); setCode(code); setMessage(message); setException(exception); }
Simplified constructor of a new status object; assumes that code is OK. The created status has no children.
Params:
  • severity – the severity; one of OK, ERROR, INFO, WARNING, or CANCEL
  • pluginId – the unique identifier of the relevant plug-in
  • message – a human-readable message, localized to the current locale
  • exception – a low-level exception, or null if not applicable
Since:org.eclipse.equinox.common 3.3
/** * Simplified constructor of a new status object; assumes that code is <code>OK</code>. * The created status has no children. * * @param severity the severity; one of <code>OK</code>, <code>ERROR</code>, * <code>INFO</code>, <code>WARNING</code>, or <code>CANCEL</code> * @param pluginId the unique identifier of the relevant plug-in * @param message a human-readable message, localized to the * current locale * @param exception a low-level exception, or <code>null</code> if not * applicable * * @since org.eclipse.equinox.common 3.3 */
public Status(int severity, String pluginId, String message, Throwable exception) { setSeverity(severity); setPlugin(pluginId); setMessage(message); setException(exception); setCode(OK); }
Simplified constructor of a new status object; assumes that code is OK and exception is null. The created status has no children.
Params:
  • severity – the severity; one of OK, ERROR, INFO, WARNING, or CANCEL
  • pluginId – the unique identifier of the relevant plug-in
  • message – a human-readable message, localized to the current locale
Since:org.eclipse.equinox.common 3.3
/** * Simplified constructor of a new status object; assumes that code is <code>OK</code> and * exception is <code>null</code>. The created status has no children. * * @param severity the severity; one of <code>OK</code>, <code>ERROR</code>, * <code>INFO</code>, <code>WARNING</code>, or <code>CANCEL</code> * @param pluginId the unique identifier of the relevant plug-in * @param message a human-readable message, localized to the * current locale * * @since org.eclipse.equinox.common 3.3 */
public Status(int severity, String pluginId, String message) { setSeverity(severity); setPlugin(pluginId); setMessage(message); setCode(OK); setException(null); } @Override public IStatus[] getChildren() { return theEmptyStatusArray; } @Override public int getCode() { return code; } @Override public Throwable getException() { return exception; } @Override public String getMessage() { return message; } @Override public String getPlugin() { return pluginId; } @Override public int getSeverity() { return severity; } @Override public boolean isMultiStatus() { return false; } @Override public boolean isOK() { return severity == OK; } @Override public boolean matches(int severityMask) { return (severity & severityMask) != 0; }
Sets the status code.
Params:
  • code – the plug-in-specific status code, or OK
/** * Sets the status code. * * @param code the plug-in-specific status code, or <code>OK</code> */
protected void setCode(int code) { this.code = code; }
Sets the exception.
Params:
  • exception – a low-level exception, or null if not applicable
/** * Sets the exception. * * @param exception a low-level exception, or <code>null</code> if not * applicable */
protected void setException(Throwable exception) { this.exception = exception; }
Sets the message. If null is passed, message is set to an empty string.
Params:
  • message – a human-readable message, localized to the current locale
/** * Sets the message. If null is passed, message is set to an empty * string. * * @param message a human-readable message, localized to the * current locale */
protected void setMessage(String message) { if (message == null) this.message = ""; //$NON-NLS-1$ else this.message = message; }
Sets the plug-in id.
Params:
  • pluginId – the unique identifier of the relevant plug-in
/** * Sets the plug-in id. * * @param pluginId the unique identifier of the relevant plug-in */
protected void setPlugin(String pluginId) { Assert.isLegal(pluginId != null && pluginId.length() > 0); this.pluginId = pluginId; }
Sets the severity.
Params:
  • severity – the severity; one of OK, ERROR, INFO, WARNING, or CANCEL
/** * Sets the severity. * * @param severity the severity; one of <code>OK</code>, <code>ERROR</code>, * <code>INFO</code>, <code>WARNING</code>, or <code>CANCEL</code> */
protected void setSeverity(int severity) { Assert.isLegal(severity == OK || severity == ERROR || severity == WARNING || severity == INFO || severity == CANCEL); this.severity = severity; }
Returns a string representation of the status, suitable for debugging purposes only.
/** * Returns a string representation of the status, suitable * for debugging purposes only. */
@Override public String toString() { StringBuilder buf = new StringBuilder(); buf.append("Status "); //$NON-NLS-1$ if (severity == OK) { buf.append("OK"); //$NON-NLS-1$ } else if (severity == ERROR) { buf.append("ERROR"); //$NON-NLS-1$ } else if (severity == WARNING) { buf.append("WARNING"); //$NON-NLS-1$ } else if (severity == INFO) { buf.append("INFO"); //$NON-NLS-1$ } else if (severity == CANCEL) { buf.append("CANCEL"); //$NON-NLS-1$ } else { buf.append("severity="); //$NON-NLS-1$ buf.append(severity); } buf.append(": "); //$NON-NLS-1$ buf.append(pluginId); buf.append(" code="); //$NON-NLS-1$ buf.append(code); buf.append(' '); buf.append(message); buf.append(' '); buf.append(exception); return buf.toString(); } }