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 b8007a1..c1d7cd7 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
@@ -1,327 +1,452 @@
/*******************************************************************************
- * Copyright (c) 2000, 2001, 2002 International Business Machines Corp. and others.
+ * Copyright (c) 2000, 2003 IBM Corporation and others.
* All rights reserved. This program and the accompanying materials
- * are made available under the terms of the Common Public License v0.5
+ * are made available under the terms of the Common Public License v1.0
* which accompanies this distribution, and is available at
- * http://www.eclipse.org/legal/cpl-v05.html
+ * http://www.eclipse.org/legal/cpl-v10.html
*
* Contributors:
* IBM Corporation - initial API and implementation
- ******************************************************************************/
+ *******************************************************************************/
package net.sourceforge.phpdt.internal.core;
import net.sourceforge.phpdt.core.IJavaElement;
import net.sourceforge.phpdt.core.IJavaModelStatus;
import net.sourceforge.phpdt.core.IJavaModelStatusConstants;
-import net.sourceforge.phpeclipse.PHPeclipsePlugin;
+import net.sourceforge.phpdt.core.JavaCore;
+import net.sourceforge.phpdt.internal.core.util.Util;
import org.eclipse.core.resources.IResourceStatus;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Status;
-//import net.sourceforge.phpdt.core.IPackageFragment;
-//import net.sourceforge.phpdt.core.JavaCore;
/**
* @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;
-
- /**
- * Singleton OK object
- */
- public static final IJavaModelStatus VERIFIED_OK = new JavaModelStatus(OK);
-
- /**
- * Constructs an Java model status with no corresponding elements.
- */
- public JavaModelStatus() {
- // no code for an multi-status
- super(ERROR, PHPeclipsePlugin.PLUGIN_ID, 0, "JavaModelStatus", null); //$NON-NLS-1$
- }
- /**
- * Constructs an Java model status with no corresponding elements.
- */
- public JavaModelStatus(int code) {
- super(ERROR, PHPeclipsePlugin.PLUGIN_ID, code, "JavaModelStatus", null); //$NON-NLS-1$
- fElements= JavaElementInfo.fgEmptyChildren;
- }
-// /**
-// * 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) {
-// super(ERROR, JavaCore.PLUGIN_ID, code, "JavaModelStatus", null); //$NON-NLS-1$
-// fElements= JavaElementInfo.fgEmptyChildren;
-// fPath= null;
-// fString = string;
-// }
-// /**
-// * Constructs an Java model status with no corresponding elements.
-// */
- public JavaModelStatus(int code, Throwable throwable) {
- super(ERROR, PHPeclipsePlugin.PLUGIN_ID, code, "JavaModelStatus", throwable); //$NON-NLS-1$
- fElements= JavaElementInfo.fgEmptyChildren;
- }
-// /**
-// * 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;
-// 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 no corresponding elements.
- */
- public JavaModelStatus(CoreException coreException) {
- super(ERROR, PHPeclipsePlugin.PLUGIN_ID, CORE_EXCEPTION, "JavaModelStatus", coreException); //$NON-NLS-1$
- fElements= JavaElementInfo.fgEmptyChildren;
- }
- 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() {
-// if (getException() == 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 Util.bind("element.doesNotExist",fElements[0].getElementName()); //$NON-NLS-1$
-// case EVALUATION_ERROR:
-// return Util.bind("status.evaluationError", getString()); //$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 Util.bind("status.invalidDestination", fElements[0].getElementName()); //$NON-NLS-1$
-// case INVALID_ELEMENT_TYPES:
-// StringBuffer buff= new StringBuffer(Util.bind("operation.notSupported")); //$NON-NLS-1$
-// for (int i= 0; i < fElements.length; i++) {
-// if (i > 0) {
-// buff.append(", "); //$NON-NLS-1$
-// }
-// buff.append(fElements[0].getElementName());
-// }
-// return buff.toString();
-// case INVALID_NAME:
-// return Util.bind("status.invalidName", getString()); //$NON-NLS-1$
-// case INVALID_PACKAGE:
-// return Util.bind("status.invalidPackage", getString()); //$NON-NLS-1$
-// case INVALID_PATH:
-// return Util.bind("status.invalidPath", getPath() == null ? "null" : getPath().toString()); //$NON-NLS-1$ //$NON-NLS-2$
-// case INVALID_PROJECT:
-// return Util.bind("status.invalidProject", getString()); //$NON-NLS-1$
-// case INVALID_RESOURCE:
-// return Util.bind("status.invalidResource", getString()); //$NON-NLS-1$
-// case INVALID_RESOURCE_TYPE:
-// return Util.bind("status.invalidResourceType", getString()); //$NON-NLS-1$
-// case INVALID_SIBLING:
-// return Util.bind("status.invalidSibling", fElements[0].getElementName()); //$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 Util.bind("operation.cannotRenameDefaultPackage"); //$NON-NLS-1$
-// }
-// }
-// return Util.bind("status.nameCollision"); //$NON-NLS-1$
-// 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 Util.bind("operation.pathOutsideProject", getString(), fElements[0].getElementName()); //$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 Util.bind("status.defaultPackageReadOnly"); //$NON-NLS-1$
-// }
-// return Util.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$
-// }
-// return getString();
-// } else {
-// return getException().getMessage();
-// }
-// }
- /**
- * @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()
- */
- 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();
+ }
}