Eclipse JDT
2.0

org.eclipse.jdt.core
Interface IPackageFragmentRoot

All Superinterfaces:
IAdaptable, IJavaElement, IOpenable, IParent

public interface IPackageFragmentRoot
extends IParent, IJavaElement, IOpenable

A package fragment root contains a set of package fragments. It corresponds to an underlying resource which is either a folder, JAR, or zip. In the case of a folder, all descendant folders represent package fragments. For a given child folder representing a package fragment, the corresponding package name is composed of the folder names between the folder for this root and the child folder representing the package, separated by '.'. In the case of a JAR or zip, the contents of the archive dictates the set of package fragments in an analogous manner. Package fragment roots need to be opened before they can be navigated or manipulated. The children are of type IPackageFragment, and are in no particular order.

This interface is not intended to be implemented by clients.


Field Summary
static String DEFAULT_PACKAGEROOT_PATH
          Empty root path
static int K_BINARY
          Kind constant for a binary path root.
static int K_SOURCE
          Kind constant for a source path root.
 
Fields inherited from interface org.eclipse.jdt.core.IJavaElement
CLASS_FILE, COMPILATION_UNIT, FIELD, IMPORT_CONTAINER, IMPORT_DECLARATION, INITIALIZER, JAVA_MODEL, JAVA_PROJECT, METHOD, PACKAGE_DECLARATION, PACKAGE_FRAGMENT, PACKAGE_FRAGMENT_ROOT, TYPE
 
Method Summary
 void attachSource(IPath archivePath, IPath rootPath, IProgressMonitor monitor)
          Attaches the source archive identified by the given absolute path to this JAR package fragment root.
 IPackageFragment createPackageFragment(String name, boolean force, IProgressMonitor monitor)
          Creates and returns a package fragment in this root with the given dot-separated package name.
 int getKind()
          Returns this package fragment root's kind encoded as an integer.
 Object[] getNonJavaResources()
          Returns an array of non-Java resources contained in this package fragment root.
 IPackageFragment getPackageFragment(String packageName)
          Returns the package fragment with the given package name.
 IClasspathEntry getRawClasspathEntry()
          Returns the first raw classpath entry that corresponds to this package fragment root.
 IPath getSourceAttachmentPath()
          Returns the absolute path to the source archive attached to this package fragment root's binary archive.
 IPath getSourceAttachmentRootPath()
          Returns the path within this package fragment root's source archive.
 boolean isArchive()
          Returns whether this package fragment root's underlying resource is a binary archive (a JAR or zip file).
 boolean isExternal()
          Returns whether this package fragment root is external to the workbench (that is, a local file), and has no underlying resource.
 
Methods inherited from interface org.eclipse.jdt.core.IParent
getChildren, hasChildren
 
Methods inherited from interface org.eclipse.jdt.core.IJavaElement
exists, getAncestor, getCorrespondingResource, getElementName, getElementType, getHandleIdentifier, getJavaModel, getJavaProject, getOpenable, getParent, getPath, getResource, getUnderlyingResource, isReadOnly, isStructureKnown
 
Methods inherited from interface org.eclipse.core.runtime.IAdaptable
getAdapter
 
Methods inherited from interface org.eclipse.jdt.core.IOpenable
close, getBuffer, hasUnsavedChanges, isConsistent, isOpen, makeConsistent, open, save
 

Field Detail

K_SOURCE

public static final int K_SOURCE
Kind constant for a source path root. Indicates this root only contains source files.

See Also:
Constant Field Values

K_BINARY

public static final int K_BINARY
Kind constant for a binary path root. Indicates this root only contains binary files.

See Also:
Constant Field Values

DEFAULT_PACKAGEROOT_PATH

public static final String DEFAULT_PACKAGEROOT_PATH
Empty root path

See Also:
Constant Field Values
Method Detail

attachSource

public void attachSource(IPath archivePath,
                         IPath rootPath,
                         IProgressMonitor monitor)
                  throws JavaModelException
Attaches the source archive identified by the given absolute path to this JAR package fragment root. rootPath specifies the location of the root within the archive (null or empty specifies the default root). Once a source archive is attached to the JAR, the getSource and getSourceRange methods become operational for binary types/members. To detach a source archive from a JAR, specify null as the archivePath.

Parameters:
archivePath - the given absolute path to this JAR package fragment root
rootPath - specifies the location of the root within the archive (null or empty specifies the default root)
monitor - the given progress monitor
Throws:
JavaModelException - if this operation fails. Reasons include:
  • This Java element does not exist (ELEMENT_DOES_NOT_EXIST)
  • A CoreException occurred while updating a server property
  • This package fragment root is not a JAR (INVALID_ELEMENT_TYPES)
  • The path provided is not absolute (RELATIVE_PATH)

createPackageFragment

public IPackageFragment createPackageFragment(String name,
                                              boolean force,
                                              IProgressMonitor monitor)
                                       throws JavaModelException
Creates and returns a package fragment in this root with the given dot-separated package name. An empty string specifies the default package. This has the side effect of creating all package fragments that are a prefix of the new package fragment which do not exist yet. If the package fragment already exists, this has no effect. For a description of the force flag, see IFolder.create.

Parameters:
name - the given dot-separated package name
force - a flag controlling how to deal with resources that are not in sync with the local file system
monitor - the given progress monitor
Returns:
a package fragment in this root with the given dot-separated package name
Throws:
JavaModelException - if the element could not be created. Reasons include:
  • This Java element does not exist (ELEMENT_DOES_NOT_EXIST)
  • A CoreException occurred while creating an underlying resource
  • This package fragment root is read only (READ_ONLY)
  • The name is not a valid package name (INVALID_NAME)
See Also:
IFolder.create(boolean, boolean, org.eclipse.core.runtime.IProgressMonitor)

getKind

public int getKind()
            throws JavaModelException
Returns this package fragment root's kind encoded as an integer. A package fragment root can contain .java source files, 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 .java files are ignored under a binary package fragment root.

Returns:
this package fragment root's kind encoded as an integer
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.
See Also:
K_SOURCE, K_BINARY

getNonJavaResources

public Object[] getNonJavaResources()
                             throws JavaModelException
Returns an array of non-Java resources contained in this package fragment root.

Returns:
an array of non-Java resources contained in this package fragment root
JavaModelException

getPackageFragment

public IPackageFragment getPackageFragment(String packageName)
Returns the package fragment with the given package name. An empty string indicates the default package. This is a handle-only operation. The package fragment may or may not exist.

Parameters:
packageName - the given package name
Returns:
the package fragment with the given package name

getRawClasspathEntry

public IClasspathEntry getRawClasspathEntry()
                                     throws JavaModelException
Returns the first raw classpath entry that corresponds to this package fragment root. A raw classpath entry corresponds to a package fragment root if once resolved this entry's path is equal to the root's path.

Returns:
the first raw classpath entry that corresponds to this package fragment root
Throws:
JavaModelException - if this element does not exist or if an exception occurs while accessing its corresponding resource.
Since:
2.0

getSourceAttachmentPath

public IPath getSourceAttachmentPath()
                              throws JavaModelException
Returns the absolute path to the source archive attached to this package fragment root's binary archive.

Returns:
the absolute path to the corresponding source archive, or null if this package fragment root's binary archive has no corresponding source archive, or if this package fragment root is not a binary archive
Throws:
JavaModelException - if this operation fails

getSourceAttachmentRootPath

public IPath getSourceAttachmentRootPath()
                                  throws JavaModelException
Returns the path within this package fragment root's source archive. An empty path indicates that packages are located at the root of the source archive.

Returns:
the path within the corresponding source archive, or null if this package fragment root's binary archive has no corresponding source archive, or if this package fragment root is not a binary archive
Throws:
JavaModelException - if this operation fails

isArchive

public boolean isArchive()
Returns whether this package fragment root's underlying resource is a binary archive (a JAR or zip file).

Returns:
true if this package ragment root's underlying resource is a binary archive, false otherwise

isExternal

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

Returns:
true if this package fragment root is external to the workbench (that is, a local file), and has no underlying resource, false otherwise

Eclipse JDT
2.0

Copyright (c) IBM Corp. and others 2000, 2002. All Rights Reserved.