Copyright (c) 2000, 2008 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, 2008 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.ltk.core.refactoring; import org.eclipse.core.runtime.Assert; import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Status; import org.eclipse.ltk.internal.core.refactoring.RefactoringCorePlugin;
An immutable object representing an entry in the list in RefactoringStatus. A refactoring status entry consists of a severity, a message, a problem code (represented by a tuple(plug-in identifier and code number)), a context object and a generic data pointer. The context object is used to provide context information for the problem itself. An example context is a tuple consisting of the resource that contains the problem and a corresponding line number.

Note: this class is not intended to be extended by clients.

Since:3.0
@noextendThis class is not intended to be subclassed by clients.
/** * An immutable object representing an entry in the list in <code>RefactoringStatus</code>. * A refactoring status entry consists of a severity, a message, a problem code * (represented by a tuple(plug-in identifier and code number)), a context object and a * generic data pointer. The context object is used to provide context information for * the problem itself. An example context is a tuple consisting of the resource that contains * the problem and a corresponding line number. * <p> * Note: this class is not intended to be extended by clients. * </p> * * @since 3.0 * * @noextend This class is not intended to be subclassed by clients. */
public class RefactoringStatusEntry {
A special problem code indicating that no problem code is provided. If NO_CODE is used then the plug-in identifier can be null
/** * A special problem code indicating that no problem code is provided. If * <code>NO_CODE</code> is used then the plug-in identifier can be <code> * null</code> */
public static final int NO_CODE= -1;
The severity
/** The severity */
private final int fSeverity;
The message
/** The message */
private final String fMessage;
A plug-in specific problem code
/** A plug-in specific problem code */
private final int fCode;
A plug-in identifier to make the problem code unique
/** A plug-in identifier to make the problem code unique */
private final String fPluginId;
A context providing detailed information of where the problem occurred
/** A context providing detailed information of where the problem occurred */
private final RefactoringStatusContext fContext;
A generic data pointer
/** A generic data pointer */
private final Object fData;
Creates a new refactoring status entry. The context is set to null the problem code is set to NO_CODE, the plug-in identifier is set to null and the data pointer is set to null as well.
Params:
  • severity – the severity
  • msg – the message
/** * Creates a new refactoring status entry. The context is set to <code> * null</code> the problem code is set to <code>NO_CODE</code>, the * plug-in identifier is set to <code>null</code> and the data pointer * is set to <code>null</code> as well. * * @param severity the severity * @param msg the message */
public RefactoringStatusEntry(int severity, String msg) { this(severity, msg, null); }
Creates a new refactoring status entry. The problem code is set to NO_CODE, the plug-in identifier is set to null and the data pointer is set to null as well.
Params:
  • severity – the severity
  • msg – the message
  • context – the context. Can be null
/** * Creates a new refactoring status entry. The problem code is set to <code> * NO_CODE</code>, the plug-in identifier is set to <code>null</code> and * the data pointer is set to <code>null</code> as well. * * @param severity the severity * @param msg the message * @param context the context. Can be <code>null</code> */
public RefactoringStatusEntry(int severity, String msg, RefactoringStatusContext context) { this(severity, msg, context, null, NO_CODE, null); }
Creates a new refactoring status entry.
Params:
  • severity – the severity
  • msg – the message
  • context – the context. Can be null
  • pluginId – the plug-in identifier. Can be null if argument code equals NO_CODE
  • code – the problem code. Must be either NO_CODE or equals or greater than zero
/** * Creates a new refactoring status entry. * * @param severity the severity * @param msg the message * @param context the context. Can be <code>null</code> * @param pluginId the plug-in identifier. Can be <code>null</code> if argument <code> * code</code> equals <code>NO_CODE</code> * @param code the problem code. Must be either <code>NO_CODE</code> or equals or greater * than zero */
public RefactoringStatusEntry(int severity, String msg, RefactoringStatusContext context, String pluginId, int code) { this(severity, msg, context, pluginId, code, null); }
Creates a new refactoring status entry.
Params:
  • severity – the severity
  • msg – the message
  • context – the context. Can be null
  • pluginId – the plug-in identifier. Can be null if argument code equals NO_CODE
  • code – the problem code. Must be either NO_CODE or a positive integer
  • data – application specific data
/** * Creates a new refactoring status entry. * * @param severity the severity * @param msg the message * @param context the context. Can be <code>null</code> * @param pluginId the plug-in identifier. Can be <code>null</code> if argument <code> * code</code> equals <code>NO_CODE</code> * @param code the problem code. Must be either <code>NO_CODE</code> or a positive integer * @param data application specific data */
public RefactoringStatusEntry(int severity, String msg, RefactoringStatusContext context, String pluginId, int code, Object data) { Assert.isTrue(severity == RefactoringStatus.INFO || severity == RefactoringStatus.WARNING || severity == RefactoringStatus.ERROR || severity == RefactoringStatus.FATAL); Assert.isNotNull(msg); Assert.isTrue(code == NO_CODE || code >= 0); if (code != NO_CODE) Assert.isTrue(pluginId != null); fMessage= msg; fSeverity= severity; fContext= context; fPluginId= pluginId; fCode= code; fData= data; }
Returns the message of the status entry.
Returns:the message
/** * Returns the message of the status entry. * * @return the message */
public String getMessage() { return fMessage; }
Returns the severity level.
See Also:
Returns:the severity level
/** * Returns the severity level. * * @return the severity level * * @see RefactoringStatus#INFO * @see RefactoringStatus#WARNING * @see RefactoringStatus#ERROR * @see RefactoringStatus#FATAL */
public int getSeverity() { return fSeverity; }
Returns the context which can be used to show more detailed information regarding this status entry in the UI. The method may return null indicating that no context is available.
Returns:the status entry's context
/** * Returns the context which can be used to show more detailed information regarding * this status entry in the UI. The method may return <code>null</code> indicating * that no context is available. * * @return the status entry's context */
public RefactoringStatusContext getContext() { return fContext; }
Returns the plug-in identifier associated with the problem code. Might return null if the problem code equals NO_CODE.
Returns:the plug-in identifier
/** * Returns the plug-in identifier associated with the * problem code. Might return <code>null</code> if the * problem code equals <code>NO_CODE</code>. * * @return the plug-in identifier */
public String getPluginId() { return fPluginId; }
Returns the problem code.
Returns:the problem code
/** * Returns the problem code. * * @return the problem code */
public int getCode() { return fCode; }
Returns the application defined entry data associated with the receiver, or null if it has not been set.
Returns:the entry data
/** * Returns the application defined entry data associated * with the receiver, or <code>null</code> if it has not * been set. * * @return the entry data */
public Object getData() { return fData; }
Returns whether the entry represents a fatal error or not.
Returns:true if (severity ==RefactoringStatus.FATAL)
/** * Returns whether the entry represents a fatal error or not. * * @return <code>true</code> if (severity ==<code>RefactoringStatus.FATAL</code>) */
public boolean isFatalError() { return fSeverity == RefactoringStatus.FATAL; }
Returns whether the entry represents an error or not.
Returns:true if (severity ==RefactoringStatus.ERROR).
/** * Returns whether the entry represents an error or not. * * @return <code>true</code> if (severity ==<code>RefactoringStatus.ERROR</code>). */
public boolean isError() { return fSeverity == RefactoringStatus.ERROR; }
Returns whether the entry represents a warning or not.
Returns:true if (severity ==RefactoringStatus.WARNING).
/** * Returns whether the entry represents a warning or not. * * @return <code>true</code> if (severity ==<code>RefactoringStatus.WARNING</code>). */
public boolean isWarning() { return fSeverity == RefactoringStatus.WARNING; }
Returns whether the entry represents an information or not.
Returns:true if (severity ==RefactoringStatus.INFO).
/** * Returns whether the entry represents an information or not. * * @return <code>true</code> if (severity ==<code>RefactoringStatus.INFO</code>). */
public boolean isInfo() { return fSeverity == RefactoringStatus.INFO; }
Returns this refactoring status entry as an IStatus.

If this refactoring status entry has a severity of RefactoringStatus.FATAL, the returned status will have a severity of IStatus.ERROR, otherwise a status with severity corresponding to the refactoring status entry is returned. If the plugin id of this refactoring status entry is not defined, the plugin id org.eclipse.ltk.core.refactoring will be used in the returned status.

Returns:the corresponding status
Since:3.2
/** * Returns this refactoring status entry as an {@link IStatus}. * <p> * If this refactoring status entry has a severity of * {@link RefactoringStatus#FATAL}, the returned status will have a * severity of {@link IStatus#ERROR}, otherwise a status with severity * corresponding to the refactoring status entry is returned. If the plugin * id of this refactoring status entry is not defined, the plugin id * <code>org.eclipse.ltk.core.refactoring</code> will be used in the * returned status. * </p> * * @return the corresponding status * * @since 3.2 */
public IStatus toStatus() { int statusSeverity= IStatus.ERROR; switch (getSeverity()) { case RefactoringStatus.OK: statusSeverity= IStatus.OK; break; case RefactoringStatus.INFO: statusSeverity= IStatus.INFO; break; case RefactoringStatus.WARNING: case RefactoringStatus.ERROR: statusSeverity= IStatus.WARNING; break; } String pluginId= getPluginId(); int code= getCode(); if (pluginId == null) { pluginId= RefactoringCorePlugin.getPluginId(); code= IStatus.ERROR; } return new Status(statusSeverity, pluginId, code, getMessage(), null); } /* * non java-doc for debugging only */ @Override public String toString() { String contextString= fContext == null ? "<Unspecified context>" : fContext.toString(); //$NON-NLS-1$ return "\n" //$NON-NLS-1$ + RefactoringStatus.getSeverityString(fSeverity) + ": " + fMessage + //$NON-NLS-1$ "\nContext: " + contextString + //$NON-NLS-1$ (fCode == NO_CODE ? "\ncode: none" : "\nplug-in id: " + fPluginId + "code: " + fCode) + //$NON-NLS-1$ //$NON-NLS-2$ //$NON-NLS-3$ "\nData: " + fData; //$NON-NLS-1$ } }