|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface IPackageFragmentRoot
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.
Field Summary | |
---|---|
static java.lang.String |
DEFAULT_PACKAGEROOT_PATH
Empty root path |
static int |
DESTINATION_PROJECT_CLASSPATH
Update model flag constant (bit mask value 8) indicating that the operation is to update the classpath of the destination project. |
static int |
K_BINARY
Kind constant for a binary path root. |
static int |
K_SOURCE
Kind constant for a source path root. |
static int |
NO_RESOURCE_MODIFICATION
Update model flag constant (bit mask value 1) indicating that the operation is to not copy/move/delete the package fragment root resource. |
static int |
ORIGINATING_PROJECT_CLASSPATH
Update model flag constant (bit mask value 2) indicating that the operation is to update the classpath of the originating project. |
static int |
OTHER_REFERRING_PROJECTS_CLASSPATH
Update model flag constant (bit mask value 4) indicating that the operation is to update the classpath of all referring projects except the originating project. |
static int |
REPLACE
Update model flag constant (bit mask value 16) indicating that the operation is to replace the resource and the destination project's classpath entry. |
Fields inherited from interface 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 |
Method Summary | |
---|---|
void |
attachSource(org.eclipse.core.runtime.IPath sourcePath,
org.eclipse.core.runtime.IPath rootPath,
org.eclipse.core.runtime.IProgressMonitor monitor)
Attaches the source archive identified by the given absolute path to this binary package fragment root. |
void |
copy(org.eclipse.core.runtime.IPath destination,
int updateResourceFlags,
int updateModelFlags,
IClasspathEntry sibling,
org.eclipse.core.runtime.IProgressMonitor monitor)
Copies the resource of this package fragment root to the destination path as specified by IResource.copy(IPath, int, IProgressMonitor)
but excluding nested source folders. |
IPackageFragment |
createPackageFragment(java.lang.String name,
boolean force,
org.eclipse.core.runtime.IProgressMonitor monitor)
Creates and returns a package fragment in this root with the given dot-separated package name. |
void |
delete(int updateResourceFlags,
int updateModelFlags,
org.eclipse.core.runtime.IProgressMonitor monitor)
Deletes the resource of this package fragment root as specified by IResource.delete(int, IProgressMonitor) but excluding nested
source folders. |
int |
getKind()
Returns this package fragment root's kind encoded as an integer. |
java.lang.Object[] |
getNonJavaResources()
Returns an array of non-Java resources contained in this package fragment root. |
IPackageFragment |
getPackageFragment(java.lang.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. |
org.eclipse.core.runtime.IPath |
getSourceAttachmentPath()
Returns the absolute path to the source archive attached to this package fragment root's binary archive. |
org.eclipse.core.runtime.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. |
void |
move(org.eclipse.core.runtime.IPath destination,
int updateResourceFlags,
int updateModelFlags,
IClasspathEntry sibling,
org.eclipse.core.runtime.IProgressMonitor monitor)
Moves the resource of this package fragment root to the destination path as specified by IResource.move(IPath,int,IProgressMonitor)
but excluding nested source folders. |
Methods inherited from interface org.eclipse.jdt.core.IParent |
---|
getChildren, hasChildren |
Methods inherited from interface org.eclipse.jdt.core.IJavaElement |
---|
exists, getAncestor, getAttachedJavadoc, getCorrespondingResource, getElementName, getElementType, getHandleIdentifier, getJavaModel, getJavaProject, getOpenable, getParent, getPath, getPrimaryElement, getResource, getSchedulingRule, getUnderlyingResource, isReadOnly, isStructureKnown |
Methods inherited from interface org.eclipse.core.runtime.IAdaptable |
---|
getAdapter |
Methods inherited from interface org.eclipse.jdt.core.IOpenable |
---|
close, findRecommendedLineSeparator, getBuffer, hasUnsavedChanges, isConsistent, isOpen, makeConsistent, open, save |
Field Detail |
---|
static final int K_SOURCE
static final int K_BINARY
static final java.lang.String DEFAULT_PACKAGEROOT_PATH
static final int NO_RESOURCE_MODIFICATION
static final int ORIGINATING_PROJECT_CLASSPATH
static final int OTHER_REFERRING_PROJECTS_CLASSPATH
static final int DESTINATION_PROJECT_CLASSPATH
static final int REPLACE
Method Detail |
---|
void attachSource(org.eclipse.core.runtime.IPath sourcePath, org.eclipse.core.runtime.IPath rootPath, org.eclipse.core.runtime.IProgressMonitor monitor) throws JavaModelException
rootPath
specifies the location
of the root within the archive or folder (empty specifies the default root
and null
specifies the root path should be detected).
Once a source archive or folder is attached to the package fragment root,
the getSource
and getSourceRange
methods become operational for binary types/members.
To detach a source archive or folder from a package fragment root, specify
null
as the source path.
sourcePath
- the given absolute path to the source archive or folderrootPath
- specifies the location of the root within the archive
(empty specifies the default root and null
specifies
automatic detection of the root path)monitor
- the given progress monitor
JavaModelException
- if this operation fails. Reasons include:
CoreException
occurred while updating a server property
void copy(org.eclipse.core.runtime.IPath destination, int updateResourceFlags, int updateModelFlags, IClasspathEntry sibling, org.eclipse.core.runtime.IProgressMonitor monitor) throws JavaModelException
IResource.copy(IPath, int, IProgressMonitor)
but excluding nested source folders.
If NO_RESOURCE_MODIFICATION
is specified in
updateModelFlags
or if this package fragment root is external,
this operation doesn't copy the resource. updateResourceFlags
is then ignored.
If DESTINATION_PROJECT_CLASSPATH
is specified in
updateModelFlags
, updates the classpath of the
destination's project (if it is a Java project). If a non-null
sibling is specified, a copy of this root's classpath entry is inserted before the
sibling on the destination project's raw classpath. If null
is
specified, the classpath entry is added at the end of the raw classpath.
If REPLACE
is specified in updateModelFlags
,
overwrites the resource at the destination path if any.
If the same classpath entry already exists on the destination project's raw
classpath, then the sibling is ignored and the new classpath entry replaces the
existing one.
If no flags is specified in updateModelFlags
(using
IResource.NONE
), the default behavior applies: the
resource is copied (if this package fragment root is not external) and the
classpath is not updated.
destination
- the destination pathupdateResourceFlags
- bit-wise or of update resource flag constants
(IResource.FORCE
and IResource.SHALLOW
)updateModelFlags
- bit-wise or of update resource flag constants
(DESTINATION_PROJECT_CLASSPATH
and
NO_RESOURCE_MODIFICATION
)sibling
- the classpath entry before which a copy of the classpath
entry should be inserted or null
if the classpath entry should
be inserted at the endmonitor
- a progress monitor
JavaModelException
- if this root could not be copied. Reasons
include:
CoreException
occurred while copying the
resource or updating a classpathupdateModelFlags
has been specified as DESTINATION_PROJECT_CLASSPATH
(INVALID_DESTINATION)updateModelFlags
has not been specified as REPLACE
IResource.copy(IPath, boolean, IProgressMonitor)
IPackageFragment createPackageFragment(java.lang.String name, boolean force, org.eclipse.core.runtime.IProgressMonitor monitor) throws JavaModelException
force
flag, see IFolder.create
.
name
- the given dot-separated package nameforce
- a flag controlling how to deal with resources that
are not in sync with the local file systemmonitor
- the given progress monitor
JavaModelException
- if the element could not be created. Reasons include:
CoreException
occurred while creating an underlying resource
IFolder.create(boolean, boolean, IProgressMonitor)
void delete(int updateResourceFlags, int updateModelFlags, org.eclipse.core.runtime.IProgressMonitor monitor) throws JavaModelException
IResource.delete(int, IProgressMonitor)
but excluding nested
source folders.
If NO_RESOURCE_MODIFICATION
is specified in
updateModelFlags
or if this package fragment root is external,
this operation doesn't delete the resource. updateResourceFlags
is then ignored.
If ORIGINATING_PROJECT_CLASSPATH
is specified in
updateModelFlags
, update the raw classpath of this package
fragment root's project by removing the corresponding classpath entry.
If OTHER_REFERRING_PROJECTS_CLASSPATH
is specified in
updateModelFlags
, update the raw classpaths of all other Java
projects referring to this root's resource by removing the corresponding classpath
entries.
If no flags is specified in updateModelFlags
(using
IResource.NONE
), the default behavior applies: the
resource is deleted (if this package fragment root is not external) and no
classpaths are updated.
updateResourceFlags
- bit-wise or of update resource flag constants
(IResource.FORCE
and IResource.KEEP_HISTORY
)updateModelFlags
- bit-wise or of update resource flag constants
(ORIGINATING_PROJECT_CLASSPATH
,
OTHER_REFERRING_PROJECTS_CLASSPATH
and
NO_RESOURCE_MODIFICATION
)monitor
- a progress monitor
JavaModelException
- if this root could not be deleted. Reasons
include:
CoreException
occurred while deleting the resource
or updating a classpath
IResource.delete(boolean, IProgressMonitor)
int getKind() throws JavaModelException
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.
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resource.K_SOURCE
,
K_BINARY
java.lang.Object[] getNonJavaResources() throws JavaModelException
Non-Java resources includes other files and folders located in the same directories as the compilation units or class files under this package fragment root. Resources excluded from this package fragment root by virtue of inclusion/exclusion patterns on the corresponding source classpath entry are considered non-Java resources and will appear in the result (possibly in a folder). Thus when a nested source folder is excluded, it will appear in the non-Java resources of the outer folder.
Since 3.3, if this package fragment root is an archive, the non-Java resources
are a tree of IJarEntryResource
s. One can navigate this tree using
the IJarEntryResource.getChildren()
and
IJarEntryResource.getParent()
methods.
IFile
s,
IFolder
s, or IStorage
s if the
package fragment root is in archive) contained in this package
fragment root
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resource.IClasspathEntry.getInclusionPatterns()
,
IClasspathEntry.getExclusionPatterns()
IPackageFragment getPackageFragment(java.lang.String packageName)
packageName
- the given package name
IClasspathEntry getRawClasspathEntry() throws JavaModelException
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resource.org.eclipse.core.runtime.IPath getSourceAttachmentPath() throws JavaModelException
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
JavaModelException
- if this operation failsorg.eclipse.core.runtime.IPath getSourceAttachmentRootPath() throws JavaModelException
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
JavaModelException
- if this operation failsboolean isArchive()
This is a handle-only method.
boolean isExternal()
This is a handle-only method.
void move(org.eclipse.core.runtime.IPath destination, int updateResourceFlags, int updateModelFlags, IClasspathEntry sibling, org.eclipse.core.runtime.IProgressMonitor monitor) throws JavaModelException
IResource.move(IPath,int,IProgressMonitor)
but excluding nested source folders.
If NO_RESOURCE_MODIFICATION
is specified in
updateModelFlags
or if this package fragment root is external,
this operation doesn't move the resource. updateResourceFlags
is then ignored.
If DESTINATION_PROJECT_CLASSPATH
is specified in
updateModelFlags
, updates the classpath of the
destination's project (if it is a Java project). If a non-null
sibling is specified, a copy of this root's classpath entry is inserted before the
sibling on the destination project's raw classpath. If null
is
specified, the classpath entry is added at the end of the raw classpath.
If ORIGINATING_PROJECT_CLASSPATH
is specified in
updateModelFlags
, update the raw classpath of this package
fragment root's project by removing the corresponding classpath entry.
If OTHER_REFERRING_PROJECTS_CLASSPATH
is specified in
updateModelFlags
, update the raw classpaths of all other Java
projects referring to this root's resource by removing the corresponding classpath
entries.
If REPLACE
is specified in updateModelFlags
,
overwrites the resource at the destination path if any.
If the same classpath entry already exists on the destination project's raw
classpath, then the sibling is ignored and the new classpath entry replaces the
existing one.
If no flags is specified in updateModelFlags
(using
IResource.NONE
), the default behavior applies: the
resource is moved (if this package fragment root is not external) and no
classpaths are updated.
destination
- the destination pathupdateResourceFlags
- bit-wise or of update flag constants
(IResource.FORCE
, IResource.KEEP_HISTORY
and IResource.SHALLOW
)updateModelFlags
- bit-wise or of update resource flag constants
(DESTINATION_PROJECT_CLASSPATH
,
ORIGINATING_PROJECT_CLASSPATH
,
OTHER_REFERRING_PROJECTS_CLASSPATH
and
NO_RESOURCE_MODIFICATION
)sibling
- the classpath entry before which a copy of the classpath
entry should be inserted or null
if the classpath entry should
be inserted at the endmonitor
- a progress monitor
JavaModelException
- if this root could not be moved. Reasons
include:
CoreException
occurred while copying the
resource or updating a classpathupdateModelFlags
has been specified as DESTINATION_PROJECT_CLASSPATH
(INVALID_DESTINATION)updateModelFlags
has not been specified as REPLACE
IResource.move(IPath, boolean, IProgressMonitor)
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |