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(); + } }