X-Git-Url: http://git.phpeclipse.com
diff --git a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/JavaModelStatus.java b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/JavaModelStatus.java
index c1d7cd7..dd39b63 100644
--- a/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/JavaModelStatus.java
+++ b/net.sourceforge.phpeclipse/src/net/sourceforge/phpdt/internal/core/JavaModelStatus.java
@@ -26,427 +26,488 @@ import org.eclipse.core.runtime.Status;
* @see IJavaModelStatus
*/
-public class JavaModelStatus
- extends Status
- implements IJavaModelStatus, IJavaModelStatusConstants, IResourceStatus {
-
- /**
- * The elements related to the failure, or null
- * if no elements are involved.
- */
- protected IJavaElement[] fElements = new IJavaElement[0];
-
- /**
- * The path related to the failure, or null
- * if no path is involved.
- */
- protected IPath fPath;
- /**
- * The String
related to the failure, or null
- * if no String
is involved.
- */
- protected String fString;
- /**
- * Empty children
- */
- protected final static IStatus[] fgEmptyChildren = new IStatus[] {
- };
- protected IStatus[] fChildren = fgEmptyChildren;
-
- /**
- * Shared empty collection used for efficiency.
- */
- protected static IJavaElement[] fgObjectEmptyChildren = new IJavaElement[]{};
-
-
- /**
- * Singleton OK object
- */
- public static final IJavaModelStatus VERIFIED_OK = new JavaModelStatus(OK, OK, Util.bind("status.OK")); //$NON-NLS-1$
-
- /**
- * Constructs an Java model status with no corresponding elements.
- */
- public JavaModelStatus() {
- // no code for an multi-status
- super(ERROR, JavaCore.PLUGIN_ID, 0, "JavaModelStatus", null); //$NON-NLS-1$
- }
- /**
- * Constructs an Java model status with no corresponding elements.
- */
- public JavaModelStatus(int code) {
- super(ERROR, JavaCore.PLUGIN_ID, code, "JavaModelStatus", null); //$NON-NLS-1$
- // fElements= JavaElementInfo.fgEmptyChildren;
- fElements = fgObjectEmptyChildren;
- }
- /**
- * Constructs an Java model status with the given corresponding
- * elements.
- */
- public JavaModelStatus(int code, IJavaElement[] elements) {
- super(ERROR, JavaCore.PLUGIN_ID, code, "JavaModelStatus", null); //$NON-NLS-1$
- fElements = elements;
- fPath = null;
- }
- /**
- * Constructs an Java model status with no corresponding elements.
- */
- public JavaModelStatus(int code, String string) {
- this(ERROR, code, string);
- }
- /**
- * Constructs an Java model status with no corresponding elements.
- */
- public JavaModelStatus(int severity, int code, String string) {
- super(severity, JavaCore.PLUGIN_ID, code, "JavaModelStatus", null); //$NON-NLS-1$
- // fElements= JavaElementInfo.fgEmptyChildren;
- fElements = fgObjectEmptyChildren;
- fPath = null;
- fString = string;
- }
- /**
- * Constructs an Java model status with no corresponding elements.
- */
- public JavaModelStatus(int code, Throwable throwable) {
- super(ERROR, JavaCore.PLUGIN_ID, code, "JavaModelStatus", throwable); //$NON-NLS-1$
- // fElements= JavaElementInfo.fgEmptyChildren;
- fElements = fgObjectEmptyChildren;
- }
- /**
- * Constructs an Java model status with no corresponding elements.
- */
- public JavaModelStatus(int code, IPath path) {
- super(ERROR, JavaCore.PLUGIN_ID, code, "JavaModelStatus", null); //$NON-NLS-1$
- // fElements= JavaElementInfo.fgEmptyChildren;
- fElements = fgObjectEmptyChildren;
- fPath = path;
- }
- /**
- * Constructs an Java model status with the given corresponding
- * element.
- */
- public JavaModelStatus(int code, IJavaElement element) {
- this(code, new IJavaElement[]{element});
- }
- /**
- * Constructs an Java model status with the given corresponding
- * element and string
- */
- public JavaModelStatus(int code, IJavaElement element, String string) {
- this(code, new IJavaElement[]{element});
- fString = string;
- }
-
- /**
- * Constructs an Java model status with the given corresponding
- * element and path
- */
- public JavaModelStatus(int code, IJavaElement element, IPath path) {
- this(code, new IJavaElement[]{element});
- fPath = path;
- }
- /**
- * Constructs an Java model status with no corresponding elements.
- */
- public JavaModelStatus(CoreException coreException) {
- super(ERROR, JavaCore.PLUGIN_ID, CORE_EXCEPTION, "JavaModelStatus", coreException); //$NON-NLS-1$
- // fElements= JavaElementInfo.fgEmptyChildren;
- fElements = fgObjectEmptyChildren;
- }
- protected int getBits() {
- int severity = 1 << (getCode() % 100 / 33);
- int category = 1 << ((getCode() / 100) + 3);
- return severity | category;
- }
- /**
- * @see IStatus
- */
- public IStatus[] getChildren() {
- return fChildren;
- }
- /**
- * @see IJavaModelStatus
- */
- public IJavaElement[] getElements() {
- return fElements;
- }
- /**
- * Returns the message that is relevant to the code of this status.
- */
- public String getMessage() {
- Throwable exception = getException();
- if (exception == null) {
- switch (getCode()) {
- case CORE_EXCEPTION :
- return Util.bind("status.coreException"); //$NON-NLS-1$
-
- case BUILDER_INITIALIZATION_ERROR :
- return Util.bind("build.initializationError"); //$NON-NLS-1$
-
- case BUILDER_SERIALIZATION_ERROR :
- return Util.bind("build.serializationError"); //$NON-NLS-1$
-
- case DEVICE_PATH :
- return Util.bind("status.cannotUseDeviceOnPath", getPath().toString()); //$NON-NLS-1$
-
- case DOM_EXCEPTION :
- return Util.bind("status.JDOMError"); //$NON-NLS-1$
-
-// case ELEMENT_DOES_NOT_EXIST:
-// return ProjectPrefUtil.bind("element.doesNotExist",((JavaElement)fElements[0]).toStringWithAncestors()); //$NON-NLS-1$
-
- case EVALUATION_ERROR :
- return Util.bind("status.evaluationError", fString); //$NON-NLS-1$
-
- case INDEX_OUT_OF_BOUNDS :
- return Util.bind("status.indexOutOfBounds"); //$NON-NLS-1$
-
- case INVALID_CONTENTS :
- return Util.bind("status.invalidContents"); //$NON-NLS-1$
-
- // case INVALID_DESTINATION:
- // return ProjectPrefUtil.bind("status.invalidDestination", ((JavaElement)fElements[0]).toStringWithAncestors()); //$NON-NLS-1$
- //
- // case INVALID_ELEMENT_TYPES:
- // StringBuffer buff= new StringBuffer(ProjectPrefUtil.bind("operation.notSupported")); //$NON-NLS-1$
- // for (int i= 0; i < fElements.length; i++) {
- // if (i > 0) {
- // buff.append(", "); //$NON-NLS-1$
- // }
- // buff.append(((JavaElement)fElements[i]).toStringWithAncestors());
- // }
- // return buff.toString();
-
- case INVALID_NAME :
- return Util.bind("status.invalidName", fString); //$NON-NLS-1$
-
- case INVALID_PACKAGE :
- return Util.bind("status.invalidPackage", fString); //$NON-NLS-1$
-
- case INVALID_PATH :
- if (fString != null) {
- return fString;
- } else {
- return Util.bind("status.invalidPath", getPath() == null ? "null" : getPath().toString()); //$NON-NLS-1$ //$NON-NLS-2$
- }
-
- case INVALID_PROJECT :
- return Util.bind("status.invalidProject", fString); //$NON-NLS-1$
-
- case INVALID_RESOURCE :
- return Util.bind("status.invalidResource", fString); //$NON-NLS-1$
-
- case INVALID_RESOURCE_TYPE :
- return Util.bind("status.invalidResourceType", fString); //$NON-NLS-1$
-
- // case INVALID_SIBLING:
- // if (fString != null) {
- // return ProjectPrefUtil.bind("status.invalidSibling", fString); //$NON-NLS-1$
- // } else {
- // return ProjectPrefUtil.bind("status.invalidSibling", ((JavaElement)fElements[0]).toStringWithAncestors()); //$NON-NLS-1$
- // }
-
- case IO_EXCEPTION :
- return Util.bind("status.IOException"); //$NON-NLS-1$
-
- // case NAME_COLLISION:
- // if (fElements != null && fElements.length > 0) {
- // IJavaElement element = fElements[0];
- // String name = element.getElementName();
- // if (element instanceof IPackageFragment && name.equals(IPackageFragment.DEFAULT_PACKAGE_NAME)) {
- // return ProjectPrefUtil.bind("operation.cannotRenameDefaultPackage"); //$NON-NLS-1$
- // }
- // }
- // if (fString != null) {
- // return fString;
- // } else {
- // return ProjectPrefUtil.bind("status.nameCollision", ""); //$NON-NLS-1$ //$NON-NLS-2$
- // }
- case NO_ELEMENTS_TO_PROCESS :
- return Util.bind("operation.needElements"); //$NON-NLS-1$
-
- case NULL_NAME :
- return Util.bind("operation.needName"); //$NON-NLS-1$
-
- case NULL_PATH :
- return Util.bind("operation.needPath"); //$NON-NLS-1$
-
- case NULL_STRING :
- return Util.bind("operation.needString"); //$NON-NLS-1$
-
- // case PATH_OUTSIDE_PROJECT:
- // return ProjectPrefUtil.bind("operation.pathOutsideProject", fString, ((JavaElement)fElements[0]).toStringWithAncestors()); //$NON-NLS-1$
- //
- // case READ_ONLY:
- // IJavaElement element = fElements[0];
- // String name = element.getElementName();
- // if (element instanceof IPackageFragment && name.equals(IPackageFragment.DEFAULT_PACKAGE_NAME)) {
- // return ProjectPrefUtil.bind("status.defaultPackageReadOnly"); //$NON-NLS-1$
- // }
- // return ProjectPrefUtil.bind("status.readOnly", name); //$NON-NLS-1$
-
- case RELATIVE_PATH :
- return Util.bind("operation.needAbsolutePath", getPath().toString()); //$NON-NLS-1$
-
- case TARGET_EXCEPTION :
- return Util.bind("status.targetException"); //$NON-NLS-1$
-
- case UPDATE_CONFLICT :
- return Util.bind("status.updateConflict"); //$NON-NLS-1$
-
- case NO_LOCAL_CONTENTS :
- return Util.bind("status.noLocalContents", getPath().toString()); //$NON-NLS-1$
-
- // case CP_CONTAINER_PATH_UNBOUND:
- // IPath path = this.fPath;
- // IJavaProject javaProject = (IJavaProject)fElements[0];
- // ClasspathContainerInitializer initializer = PHPCore.getClasspathContainerInitializer(path.segment(0));
- // String description = null;
- // if (initializer != null) description = initializer.getDescription(path, javaProject);
- // if (description == null) description = path.makeRelative().toString();
- // return ProjectPrefUtil.bind("classpath.unboundContainerPath", description); //$NON-NLS-1$
- //
- // case INVALID_CP_CONTAINER_ENTRY:
- // path = this.fPath;
- // javaProject = (IJavaProject)fElements[0];
- // IClasspathContainer container = null;
- // description = null;
- // try {
- // container = PHPCore.getClasspathContainer(path, javaProject);
- // } catch(JavaModelException e){
- // }
- // if (container == null) {
- // initializer = PHPCore.getClasspathContainerInitializer(path.segment(0));
- // if (initializer != null) description = initializer.getDescription(path, javaProject);
- // } else {
- // description = container.getDescription();
- // }
- // if (description == null) description = path.makeRelative().toString();
- // return ProjectPrefUtil.bind("classpath.invalidContainer", description); //$NON-NLS-1$
- //
- // case CP_VARIABLE_PATH_UNBOUND:
- // path = this.fPath;
- // return ProjectPrefUtil.bind("classpath.unboundVariablePath", path.makeRelative().toString()); //$NON-NLS-1$
- //
- // case CLASSPATH_CYCLE:
- // javaProject = (IJavaProject)fElements[0];
- // return ProjectPrefUtil.bind("classpath.cycle", javaProject.getElementName()); //$NON-NLS-1$
-
- // case DISABLED_CP_EXCLUSION_PATTERNS:
- // path = this.fPath;
- // return ProjectPrefUtil.bind("classpath.disabledExclusionPatterns", path.makeRelative().toString()); //$NON-NLS-1$
- //
- // case DISABLED_CP_MULTIPLE_OUTPUT_LOCATIONS:
- // path = this.fPath;
- // return ProjectPrefUtil.bind("classpath.disabledMultipleOutputLocations", path.makeRelative().toString()); //$NON-NLS-1$
- }
- if (fString != null) {
- return fString;
- } else {
- return ""; // //$NON-NLS-1$
- }
- } else {
- String message = exception.getMessage();
- if (message != null) {
- return message;
- } else {
- return exception.toString();
- }
- }
- }
- /**
- * @see IJavaModelStatus#getPath()
- */
- public IPath getPath() {
- return fPath;
- }
- /**
- * @see IStatus#getSeverity()
- */
- public int getSeverity() {
- if (fChildren == fgEmptyChildren)
- return super.getSeverity();
- int severity = -1;
- for (int i = 0, max = fChildren.length; i < max; i++) {
- int childrenSeverity = fChildren[i].getSeverity();
- if (childrenSeverity > severity) {
- severity = childrenSeverity;
- }
- }
- return severity;
- }
- /**
- * @see IJavaModelStatus#getString()
- * @deprecated
- */
- public String getString() {
- return fString;
- }
- /**
- * @see IJavaModelStatus#isDoesNotExist()
- */
- public boolean isDoesNotExist() {
- return getCode() == ELEMENT_DOES_NOT_EXIST;
- }
- /**
- * @see IStatus#isMultiStatus()
- */
- public boolean isMultiStatus() {
- return fChildren != fgEmptyChildren;
- }
- /**
- * @see IStatus#isOK()
- */
- public boolean isOK() {
- return getCode() == OK;
- }
- /**
- * @see IStatus#matches(int)
- */
- public boolean matches(int mask) {
- if (!isMultiStatus()) {
- return matches(this, mask);
- } else {
- for (int i = 0, max = fChildren.length; i < max; i++) {
- if (matches((JavaModelStatus) fChildren[i], mask))
- return true;
- }
- return false;
- }
- }
- /**
- * Helper for matches(int).
- */
- protected boolean matches(JavaModelStatus status, int mask) {
- int severityMask = mask & 0x7;
- int categoryMask = mask & ~0x7;
- int bits = status.getBits();
- return ((severityMask == 0) || (bits & severityMask) != 0)
- && ((categoryMask == 0) || (bits & categoryMask) != 0);
- }
- /**
- * Creates and returns a new IJavaModelStatus
that is a
- * a multi-status status.
- *
- * @see IStatus#isMultiStatus()
- */
- public static IJavaModelStatus newMultiStatus(IJavaModelStatus[] children) {
- JavaModelStatus jms = new JavaModelStatus();
- jms.fChildren = children;
- return jms;
- }
- /**
- * Returns a printable representation of this exception for debugging
- * purposes.
- */
- public String toString() {
- if (this == VERIFIED_OK) {
- return "JavaModelStatus[OK]"; //$NON-NLS-1$
- }
- StringBuffer buffer = new StringBuffer();
- buffer.append("Java Model Status ["); //$NON-NLS-1$
- buffer.append(getMessage());
- buffer.append("]"); //$NON-NLS-1$
- return buffer.toString();
- }
+public class JavaModelStatus extends Status implements IJavaModelStatus,
+ IJavaModelStatusConstants, IResourceStatus {
+
+ /**
+ * The elements related to the failure, or null
if no
+ * elements are involved.
+ */
+ protected IJavaElement[] fElements = new IJavaElement[0];
+
+ /**
+ * The path related to the failure, or null
if no path is
+ * involved.
+ */
+ protected IPath fPath;
+
+ /**
+ * The String
related to the failure, or null
+ * if no String
is involved.
+ */
+ protected String fString;
+
+ /**
+ * Empty children
+ */
+ protected final static IStatus[] fgEmptyChildren = new IStatus[] {};
+
+ protected IStatus[] fChildren = fgEmptyChildren;
+
+ /**
+ * Shared empty collection used for efficiency.
+ */
+ protected static IJavaElement[] fgObjectEmptyChildren = new IJavaElement[] {};
+
+ /**
+ * Singleton OK object
+ */
+ public static final IJavaModelStatus VERIFIED_OK = new JavaModelStatus(OK,
+ OK, Util.bind("status.OK")); //$NON-NLS-1$
+
+ /**
+ * Constructs an Java model status with no corresponding elements.
+ */
+ public JavaModelStatus() {
+ // no code for an multi-status
+ super(ERROR, JavaCore.PLUGIN_ID, 0, "JavaModelStatus", null); //$NON-NLS-1$
+ }
+
+ /**
+ * Constructs an Java model status with no corresponding elements.
+ */
+ public JavaModelStatus(int code) {
+ super(ERROR, JavaCore.PLUGIN_ID, code, "JavaModelStatus", null); //$NON-NLS-1$
+ // fElements= JavaElementInfo.fgEmptyChildren;
+ fElements = fgObjectEmptyChildren;
+ }
+
+ /**
+ * Constructs an Java model status with the given corresponding elements.
+ */
+ public JavaModelStatus(int code, IJavaElement[] elements) {
+ super(ERROR, JavaCore.PLUGIN_ID, code, "JavaModelStatus", null); //$NON-NLS-1$
+ fElements = elements;
+ fPath = null;
+ }
+
+ /**
+ * Constructs an Java model status with no corresponding elements.
+ */
+ public JavaModelStatus(int code, String string) {
+ this(ERROR, code, string);
+ }
+
+ /**
+ * Constructs an Java model status with no corresponding elements.
+ */
+ public JavaModelStatus(int severity, int code, String string) {
+ super(severity, JavaCore.PLUGIN_ID, code, "JavaModelStatus", null); //$NON-NLS-1$
+ // fElements= JavaElementInfo.fgEmptyChildren;
+ fElements = fgObjectEmptyChildren;
+ fPath = null;
+ fString = string;
+ }
+
+ /**
+ * Constructs an Java model status with no corresponding elements.
+ */
+ public JavaModelStatus(int code, Throwable throwable) {
+ super(ERROR, JavaCore.PLUGIN_ID, code, "JavaModelStatus", throwable); //$NON-NLS-1$
+ // fElements= JavaElementInfo.fgEmptyChildren;
+ fElements = fgObjectEmptyChildren;
+ }
+
+ /**
+ * Constructs an Java model status with no corresponding elements.
+ */
+ public JavaModelStatus(int code, IPath path) {
+ super(ERROR, JavaCore.PLUGIN_ID, code, "JavaModelStatus", null); //$NON-NLS-1$
+ // fElements= JavaElementInfo.fgEmptyChildren;
+ fElements = fgObjectEmptyChildren;
+ fPath = path;
+ }
+
+ /**
+ * Constructs an Java model status with the given corresponding element.
+ */
+ public JavaModelStatus(int code, IJavaElement element) {
+ this(code, new IJavaElement[] { element });
+ }
+
+ /**
+ * Constructs an Java model status with the given corresponding element and
+ * string
+ */
+ public JavaModelStatus(int code, IJavaElement element, String string) {
+ this(code, new IJavaElement[] { element });
+ fString = string;
+ }
+
+ /**
+ * Constructs an Java model status with the given corresponding element and
+ * path
+ */
+ public JavaModelStatus(int code, IJavaElement element, IPath path) {
+ this(code, new IJavaElement[] { element });
+ fPath = path;
+ }
+
+ /**
+ * Constructs an Java model status with no corresponding elements.
+ */
+ public JavaModelStatus(CoreException coreException) {
+ super(ERROR, JavaCore.PLUGIN_ID, CORE_EXCEPTION,
+ "JavaModelStatus", coreException); //$NON-NLS-1$
+ // fElements= JavaElementInfo.fgEmptyChildren;
+ fElements = fgObjectEmptyChildren;
+ }
+
+ protected int getBits() {
+ int severity = 1 << (getCode() % 100 / 33);
+ int category = 1 << ((getCode() / 100) + 3);
+ return severity | category;
+ }
+
+ /**
+ * @see IStatus
+ */
+ public IStatus[] getChildren() {
+ return fChildren;
+ }
+
+ /**
+ * @see IJavaModelStatus
+ */
+ public IJavaElement[] getElements() {
+ return fElements;
+ }
+
+ /**
+ * Returns the message that is relevant to the code of this status.
+ */
+ public String getMessage() {
+ Throwable exception = getException();
+ if (exception == null) {
+ switch (getCode()) {
+ case CORE_EXCEPTION:
+ return Util.bind("status.coreException"); //$NON-NLS-1$
+
+ case BUILDER_INITIALIZATION_ERROR:
+ return Util.bind("build.initializationError"); //$NON-NLS-1$
+
+ case BUILDER_SERIALIZATION_ERROR:
+ return Util.bind("build.serializationError"); //$NON-NLS-1$
+
+ case DEVICE_PATH:
+ return Util.bind(
+ "status.cannotUseDeviceOnPath", getPath().toString()); //$NON-NLS-1$
+
+ case DOM_EXCEPTION:
+ return Util.bind("status.JDOMError"); //$NON-NLS-1$
+
+ // case ELEMENT_DOES_NOT_EXIST:
+ // return
+ // ProjectPrefUtil.bind("element.doesNotExist",((JavaElement)fElements[0]).toStringWithAncestors());
+ // //$NON-NLS-1$
+
+ case EVALUATION_ERROR:
+ return Util.bind("status.evaluationError", fString); //$NON-NLS-1$
+
+ case INDEX_OUT_OF_BOUNDS:
+ return Util.bind("status.indexOutOfBounds"); //$NON-NLS-1$
+
+ case INVALID_CONTENTS:
+ return Util.bind("status.invalidContents"); //$NON-NLS-1$
+
+ // case INVALID_DESTINATION:
+ // return ProjectPrefUtil.bind("status.invalidDestination",
+ // ((JavaElement)fElements[0]).toStringWithAncestors());
+ // //$NON-NLS-1$
+ //
+ // case INVALID_ELEMENT_TYPES:
+ // StringBuffer buff= new
+ // StringBuffer(ProjectPrefUtil.bind("operation.notSupported"));
+ // //$NON-NLS-1$
+ // for (int i= 0; i < fElements.length; i++) {
+ // if (i > 0) {
+ // buff.append(", "); //$NON-NLS-1$
+ // }
+ // buff.append(((JavaElement)fElements[i]).toStringWithAncestors());
+ // }
+ // return buff.toString();
+
+ case INVALID_NAME:
+ return Util.bind("status.invalidName", fString); //$NON-NLS-1$
+
+ case INVALID_PACKAGE:
+ return Util.bind("status.invalidPackage", fString); //$NON-NLS-1$
+
+ case INVALID_PATH:
+ if (fString != null) {
+ return fString;
+ } else {
+ return Util
+ .bind(
+ "status.invalidPath", getPath() == null ? "null" : getPath().toString()); //$NON-NLS-1$ //$NON-NLS-2$
+ }
+
+ case INVALID_PROJECT:
+ return Util.bind("status.invalidProject", fString); //$NON-NLS-1$
+
+ case INVALID_RESOURCE:
+ return Util.bind("status.invalidResource", fString); //$NON-NLS-1$
+
+ case INVALID_RESOURCE_TYPE:
+ return Util.bind("status.invalidResourceType", fString); //$NON-NLS-1$
+
+ // case INVALID_SIBLING:
+ // if (fString != null) {
+ // return ProjectPrefUtil.bind("status.invalidSibling",
+ // fString); //$NON-NLS-1$
+ // } else {
+ // return ProjectPrefUtil.bind("status.invalidSibling",
+ // ((JavaElement)fElements[0]).toStringWithAncestors());
+ // //$NON-NLS-1$
+ // }
+
+ case IO_EXCEPTION:
+ return Util.bind("status.IOException"); //$NON-NLS-1$
+
+ // case NAME_COLLISION:
+ // if (fElements != null && fElements.length > 0) {
+ // IJavaElement element = fElements[0];
+ // String name = element.getElementName();
+ // if (element instanceof IPackageFragment &&
+ // name.equals(IPackageFragment.DEFAULT_PACKAGE_NAME)) {
+ // return
+ // ProjectPrefUtil.bind("operation.cannotRenameDefaultPackage");
+ // //$NON-NLS-1$
+ // }
+ // }
+ // if (fString != null) {
+ // return fString;
+ // } else {
+ // return ProjectPrefUtil.bind("status.nameCollision", "");
+ // //$NON-NLS-1$ //$NON-NLS-2$
+ // }
+ case NO_ELEMENTS_TO_PROCESS:
+ return Util.bind("operation.needElements"); //$NON-NLS-1$
+
+ case NULL_NAME:
+ return Util.bind("operation.needName"); //$NON-NLS-1$
+
+ case NULL_PATH:
+ return Util.bind("operation.needPath"); //$NON-NLS-1$
+
+ case NULL_STRING:
+ return Util.bind("operation.needString"); //$NON-NLS-1$
+
+ // case PATH_OUTSIDE_PROJECT:
+ // return ProjectPrefUtil.bind("operation.pathOutsideProject",
+ // fString,
+ // ((JavaElement)fElements[0]).toStringWithAncestors());
+ // //$NON-NLS-1$
+ //
+ // case READ_ONLY:
+ // IJavaElement element = fElements[0];
+ // String name = element.getElementName();
+ // if (element instanceof IPackageFragment &&
+ // name.equals(IPackageFragment.DEFAULT_PACKAGE_NAME)) {
+ // return ProjectPrefUtil.bind("status.defaultPackageReadOnly");
+ // //$NON-NLS-1$
+ // }
+ // return ProjectPrefUtil.bind("status.readOnly", name);
+ // //$NON-NLS-1$
+
+ case RELATIVE_PATH:
+ return Util.bind(
+ "operation.needAbsolutePath", getPath().toString()); //$NON-NLS-1$
+
+ case TARGET_EXCEPTION:
+ return Util.bind("status.targetException"); //$NON-NLS-1$
+
+ case UPDATE_CONFLICT:
+ return Util.bind("status.updateConflict"); //$NON-NLS-1$
+
+ case NO_LOCAL_CONTENTS:
+ return Util
+ .bind("status.noLocalContents", getPath().toString()); //$NON-NLS-1$
+
+ // case CP_CONTAINER_PATH_UNBOUND:
+ // IPath path = this.fPath;
+ // IJavaProject javaProject = (IJavaProject)fElements[0];
+ // ClasspathContainerInitializer initializer =
+ // PHPCore.getClasspathContainerInitializer(path.segment(0));
+ // String description = null;
+ // if (initializer != null) description =
+ // initializer.getDescription(path, javaProject);
+ // if (description == null) description =
+ // path.makeRelative().toString();
+ // return ProjectPrefUtil.bind("classpath.unboundContainerPath",
+ // description); //$NON-NLS-1$
+ //
+ // case INVALID_CP_CONTAINER_ENTRY:
+ // path = this.fPath;
+ // javaProject = (IJavaProject)fElements[0];
+ // IClasspathContainer container = null;
+ // description = null;
+ // try {
+ // container = PHPCore.getClasspathContainer(path, javaProject);
+ // } catch(JavaModelException e){
+ // }
+ // if (container == null) {
+ // initializer =
+ // PHPCore.getClasspathContainerInitializer(path.segment(0));
+ // if (initializer != null) description =
+ // initializer.getDescription(path, javaProject);
+ // } else {
+ // description = container.getDescription();
+ // }
+ // if (description == null) description =
+ // path.makeRelative().toString();
+ // return ProjectPrefUtil.bind("classpath.invalidContainer",
+ // description); //$NON-NLS-1$
+ //
+ // case CP_VARIABLE_PATH_UNBOUND:
+ // path = this.fPath;
+ // return ProjectPrefUtil.bind("classpath.unboundVariablePath",
+ // path.makeRelative().toString()); //$NON-NLS-1$
+ //
+ // case CLASSPATH_CYCLE:
+ // javaProject = (IJavaProject)fElements[0];
+ // return ProjectPrefUtil.bind("classpath.cycle",
+ // javaProject.getElementName()); //$NON-NLS-1$
+
+ // case DISABLED_CP_EXCLUSION_PATTERNS:
+ // path = this.fPath;
+ // return
+ // ProjectPrefUtil.bind("classpath.disabledExclusionPatterns",
+ // path.makeRelative().toString()); //$NON-NLS-1$
+ //
+ // case DISABLED_CP_MULTIPLE_OUTPUT_LOCATIONS:
+ // path = this.fPath;
+ // return
+ // ProjectPrefUtil.bind("classpath.disabledMultipleOutputLocations",
+ // path.makeRelative().toString()); //$NON-NLS-1$
+ }
+ if (fString != null) {
+ return fString;
+ } else {
+ return ""; // //$NON-NLS-1$
+ }
+ } else {
+ String message = exception.getMessage();
+ if (message != null) {
+ return message;
+ } else {
+ return exception.toString();
+ }
+ }
+ }
+
+ /**
+ * @see IJavaModelStatus#getPath()
+ */
+ public IPath getPath() {
+ return fPath;
+ }
+
+ /**
+ * @see IStatus#getSeverity()
+ */
+ public int getSeverity() {
+ if (fChildren == fgEmptyChildren)
+ return super.getSeverity();
+ int severity = -1;
+ for (int i = 0, max = fChildren.length; i < max; i++) {
+ int childrenSeverity = fChildren[i].getSeverity();
+ if (childrenSeverity > severity) {
+ severity = childrenSeverity;
+ }
+ }
+ return severity;
+ }
+
+ /**
+ * @see IJavaModelStatus#getString()
+ * @deprecated
+ */
+ public String getString() {
+ return fString;
+ }
+
+ /**
+ * @see IJavaModelStatus#isDoesNotExist()
+ */
+ public boolean isDoesNotExist() {
+ return getCode() == ELEMENT_DOES_NOT_EXIST;
+ }
+
+ /**
+ * @see IStatus#isMultiStatus()
+ */
+ public boolean isMultiStatus() {
+ return fChildren != fgEmptyChildren;
+ }
+
+ /**
+ * @see IStatus#isOK()
+ */
+ public boolean isOK() {
+ return getCode() == OK;
+ }
+
+ /**
+ * @see IStatus#matches(int)
+ */
+ public boolean matches(int mask) {
+ if (!isMultiStatus()) {
+ return matches(this, mask);
+ } else {
+ for (int i = 0, max = fChildren.length; i < max; i++) {
+ if (matches((JavaModelStatus) fChildren[i], mask))
+ return true;
+ }
+ return false;
+ }
+ }
+
+ /**
+ * Helper for matches(int).
+ */
+ protected boolean matches(JavaModelStatus status, int mask) {
+ int severityMask = mask & 0x7;
+ int categoryMask = mask & ~0x7;
+ int bits = status.getBits();
+ return ((severityMask == 0) || (bits & severityMask) != 0)
+ && ((categoryMask == 0) || (bits & categoryMask) != 0);
+ }
+
+ /**
+ * Creates and returns a new IJavaModelStatus
that is a a
+ * multi-status status.
+ *
+ * @see IStatus#isMultiStatus()
+ */
+ public static IJavaModelStatus newMultiStatus(IJavaModelStatus[] children) {
+ JavaModelStatus jms = new JavaModelStatus();
+ jms.fChildren = children;
+ return jms;
+ }
+
+ /**
+ * Returns a printable representation of this exception for debugging
+ * purposes.
+ */
+ public String toString() {
+ if (this == VERIFIED_OK) {
+ return "JavaModelStatus[OK]"; //$NON-NLS-1$
+ }
+ StringBuffer buffer = new StringBuffer();
+ buffer.append("Java Model Status ["); //$NON-NLS-1$
+ buffer.append(getMessage());
+ buffer.append("]"); //$NON-NLS-1$
+ return buffer.toString();
+ }
}