org.aspectj.org.eclipse.jdt.internal.core
Class ExternalPackageFragmentRoot

java.lang.Object
  extended by PlatformObject
      extended by org.aspectj.org.eclipse.jdt.internal.core.JavaElement
          extended by org.aspectj.org.eclipse.jdt.internal.core.Openable
              extended by org.aspectj.org.eclipse.jdt.internal.core.PackageFragmentRoot
                  extended by org.aspectj.org.eclipse.jdt.internal.core.ExternalPackageFragmentRoot
All Implemented Interfaces:
IBufferChangedListener, IJavaElement, IOpenable, IPackageFragmentRoot, IParent

public class ExternalPackageFragmentRoot
extends PackageFragmentRoot

A package fragment root that corresponds to an external class folder.

NOTE: An external package fragment root never has an associated resource.

See Also:
IPackageFragmentRoot, PackageFragmentRootInfo

Field Summary
protected  IPath externalPath
          The path to the external folder (an OS path)
 
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.core.PackageFragmentRoot
ATTACHMENT_PROPERTY_DELIMITER, NO_SOURCE_ATTACHMENT, resource
 
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.core.JavaElement
JEM_ANNOTATION, JEM_CLASSFILE, JEM_COMPILATIONUNIT, JEM_COUNT, JEM_ESCAPE, JEM_FIELD, JEM_IMPORTDECLARATION, JEM_INITIALIZER, JEM_JAVAPROJECT, JEM_LOCALVARIABLE, JEM_METHOD, JEM_PACKAGEDECLARATION, JEM_PACKAGEFRAGMENT, JEM_PACKAGEFRAGMENTROOT, JEM_TYPE, JEM_TYPE_PARAMETER, NO_ELEMENTS, NO_INFO, parent
 
Fields inherited from interface org.aspectj.org.eclipse.jdt.core.IPackageFragmentRoot
DEFAULT_PACKAGEROOT_PATH, DESTINATION_PROJECT_CLASSPATH, K_BINARY, K_SOURCE, NO_RESOURCE_MODIFICATION, ORIGINATING_PROJECT_CLASSPATH, OTHER_REFERRING_PROJECTS_CLASSPATH, REPLACE
 
Fields inherited from interface org.aspectj.org.eclipse.jdt.core.IJavaElement
ANNOTATION, CLASS_FILE, COMPILATION_UNIT, FIELD, IMPORT_CONTAINER, IMPORT_DECLARATION, INITIALIZER, JAVA_MODEL, JAVA_PROJECT, LOCAL_VARIABLE, METHOD, PACKAGE_DECLARATION, PACKAGE_FRAGMENT, PACKAGE_FRAGMENT_ROOT, TYPE, TYPE_PARAMETER
 
Constructor Summary
protected ExternalPackageFragmentRoot(IPath externalPath, JavaProject project)
          Constructs a package fragment root which is the root of the Java package directory hierarchy based on an external folder that is not contained in a IJavaProject and does not have an associated IResource.
protected ExternalPackageFragmentRoot(IResource linkedFolder, IPath externalPath, JavaProject project)
           
 
Method Summary
protected  int determineKind(IResource underlyingResource)
          An external class folder is always K_BINARY.
 boolean equals(java.lang.Object o)
          Returns true if this handle represents the same external folder as the given handle.
 java.lang.String getElementName()
          Returns the name of this element.
 int getKind()
          Returns this package fragment root's kind encoded as an integer.
 IPath getPath()
          Returns the path to the innermost resource enclosing this element.
 IResource getUnderlyingResource()
          Returns the smallest underlying resource that contains this element, or null if this element is not contained in a resource.
 int hashCode()
          Returns the hash code for this Java element.
 boolean isExternal()
          Returns whether this package fragment root is external to the workbench (that is, a local file), and has no underlying resource.
 IResource resource(PackageFragmentRoot root)
           
protected  boolean resourceExists(IResource underlyingResource)
          Returns whether the corresponding resource or associated file exists
protected  void toStringAncestors(java.lang.StringBuffer buffer)
          Debugging purposes
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.core.PackageFragmentRoot
attachSource, buildStructure, computeChildren, computeFolderChildren, copy, createElementInfo, createPackageFragment, delete, fullExclusionPatternChars, fullInclusionPatternChars, getElementType, getHandleFromMemento, getHandleMemento, getHandleMementoDelimiter, getNonJavaResources, getPackageFragment, getPackageFragment, getPackageName, getRawClasspathEntry, getResolvedClasspathEntry, getSourceAttachmentPath, getSourceAttachmentRootPath, getSourceMapper, hasChildren, internalPath, isArchive, move, resource, setSourceMapper, toStringInfo, validateExistence, validateOnClasspath, verifyAttachSource
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.core.Openable
bufferChanged, canBeRemovedFromCache, canBufferBeRemovedFromCache, closeBuffer, closing, codeComplete, codeSelect, exists, findRecommendedLineSeparator, generateInfos, getBuffer, getBufferFactory, getBufferManager, getCorrespondingResource, getOpenable, getPackageFragmentRoot, getResource, hasBuffer, hasUnsavedChanges, isConsistent, isOpen, isSourceElement, isStructureKnown, makeConsistent, open, openAncestors, openBuffer, save
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.core.JavaElement
close, escapeMementoName, findNode, getAncestor, getAttachedJavadoc, getChildren, getChildrenOfType, getClassFile, getCompilationUnit, getElementInfo, getElementInfo, getHandleFromMemento, getHandleIdentifier, getHandleMemento, getJavadocBaseLocation, getJavaModel, getJavaProject, getLibraryJavadocLocation, getOpenableParent, getParent, getPrimaryElement, getPrimaryElement, getSchedulingRule, getSourceElementAt, getURLContents, isAncestorOf, isReadOnly, newDoesNotExistStatus, newJavaModelException, newNotPresentException, openWhenClosed, readableName, resolved, tabString, toDebugString, toString, toString, toStringChildren, toStringInfo, toStringName, toStringWithAncestors, toStringWithAncestors, unresolved
 
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.aspectj.org.eclipse.jdt.core.IParent
getChildren
 
Methods inherited from interface org.aspectj.org.eclipse.jdt.core.IJavaElement
exists, getAncestor, getAttachedJavadoc, getCorrespondingResource, getHandleIdentifier, getJavaModel, getJavaProject, getOpenable, getParent, getPrimaryElement, getResource, getSchedulingRule, isReadOnly, isStructureKnown
 
Methods inherited from interface org.aspectj.org.eclipse.jdt.core.IOpenable
close, findRecommendedLineSeparator, getBuffer, hasUnsavedChanges, isConsistent, isOpen, makeConsistent, open, save
 

Field Detail

externalPath

protected final IPath externalPath
The path to the external folder (an OS path)

Constructor Detail

ExternalPackageFragmentRoot

protected ExternalPackageFragmentRoot(IPath externalPath,
                                      JavaProject project)
Constructs a package fragment root which is the root of the Java package directory hierarchy based on an external folder that is not contained in a IJavaProject and does not have an associated IResource.


ExternalPackageFragmentRoot

protected ExternalPackageFragmentRoot(IResource linkedFolder,
                                      IPath externalPath,
                                      JavaProject project)
Method Detail

determineKind

protected int determineKind(IResource underlyingResource)
An external class folder is always K_BINARY.

Overrides:
determineKind in class PackageFragmentRoot

equals

public boolean equals(java.lang.Object o)
Returns true if this handle represents the same external folder as the given handle.

Overrides:
equals in class PackageFragmentRoot
See Also:
Object.equals(java.lang.Object)

getElementName

public java.lang.String getElementName()
Description copied from interface: IJavaElement
Returns the name of this element. This is a handle-only method.

Specified by:
getElementName in interface IJavaElement
Overrides:
getElementName in class PackageFragmentRoot
Returns:
the element name
See Also:
IAdaptable

getKind

public int getKind()
Description copied from interface: IPackageFragmentRoot
Returns this package fragment root's kind encoded as an integer. A package fragment root can contain source files (i.e. files with one of the Java-like extensions, or .class files, but not both. If the underlying folder or archive contains other kinds of files, they are ignored. In particular, .class files are ignored under a source package fragment root, and source files are ignored under a binary package fragment root.

Specified by:
getKind in interface IPackageFragmentRoot
Overrides:
getKind in class PackageFragmentRoot
Returns:
this package fragment root's kind encoded as an integer
See Also:
IPackageFragmentRoot

getPath

public IPath getPath()
Description copied from interface: IJavaElement
Returns the path to the innermost resource enclosing this element. If this element is not included in an external library, the path returned is the full, absolute path to the underlying resource, relative to the workbench. If this element is included in an external library, the path returned is the absolute path to the archive or to the folder in the file system. This is a handle-only method.

Specified by:
getPath in interface IJavaElement
Overrides:
getPath in class PackageFragmentRoot
Returns:
the path to the innermost resource enclosing this element
See Also:
IPackageFragmentRoot

getUnderlyingResource

public IResource getUnderlyingResource()
                                throws JavaModelException
Description copied from interface: IJavaElement
Returns the smallest underlying resource that contains this element, or null if this element is not contained in a resource.

Specified by:
getUnderlyingResource in interface IJavaElement
Overrides:
getUnderlyingResource in class PackageFragmentRoot
Returns:
the underlying resource, or null if none
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its underlying resource
See Also:
IJavaElement

hashCode

public int hashCode()
Description copied from class: JavaElement
Returns the hash code for this Java element. By default, the hash code for an element is a combination of its name and parent's hash code. Elements with other requirements must override this method.

Overrides:
hashCode in class PackageFragmentRoot

isExternal

public boolean isExternal()
Description copied from interface: IPackageFragmentRoot
Returns whether this package fragment root is external to the workbench (that is, a local file), and has no underlying resource.

This is a handle-only method.

Specified by:
isExternal in interface IPackageFragmentRoot
Overrides:
isExternal in class PackageFragmentRoot
Returns:
true if this package fragment root is external to the workbench (that is, a local file), and has no underlying resource, false otherwise
See Also:
IPackageFragmentRoot

resource

public IResource resource(PackageFragmentRoot root)
Overrides:
resource in class PackageFragmentRoot

resourceExists

protected boolean resourceExists(IResource underlyingResource)
Description copied from class: Openable
Returns whether the corresponding resource or associated file exists

Overrides:
resourceExists in class Openable

toStringAncestors

protected void toStringAncestors(java.lang.StringBuffer buffer)
Description copied from class: JavaElement
Debugging purposes

Overrides:
toStringAncestors in class JavaElement