Start line:  
End line:  

Snippet Preview

Snippet HTML Code

Stack Overflow Questions
Copyright (c) 2000, 2010 IBM Corporation and others. All rights reserved. This program and the accompanying materials are made available under the terms of the Eclipse Public License v1.0 which accompanies this distribution, and is available at http://www.eclipse.org/legal/epl-v10.html Contributors: IBM Corporation - initial API and implementation IBM Corporation - specified that a source archive or a source folder can be attached to a binary package fragment root. IBM Corporation - added root manipulation APIs: copy, delete, move IBM Corporation - added DESTINATION_PROJECT_CLASSPATH IBM Corporation - added OTHER_REFERRING_PROJECTS_CLASSPATH IBM Corporation - added NO_RESOURCE_MODIFICATION IBM Corporation - added REPLACE IBM Corporation - added ORIGINATING_PROJECT_CLASSPATH /
 
 package org.eclipse.jdt.core;
 
 import  org.eclipse.core.runtime.IPath;
 import  org.eclipse.core.runtime.IProgressMonitor;

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.

Noimplement:
This interface is not intended to be implemented by clients.
 
 public interface IPackageFragmentRoot
 	extends IParentIJavaElementIOpenable {
Kind constant for a source path root. Indicates this root only contains source files.
 
 	int K_SOURCE = 1;
Kind constant for a binary path root. Indicates this root only contains binary files.
 
 	int K_BINARY = 2;
Empty root path
 
 	String DEFAULT_PACKAGEROOT_PATH = ""//$NON-NLS-1$
 	
Update model flag constant (bit mask value 1) indicating that the operation is to not copy/move/delete the package fragment root resource.

Since:
2.1
 
Update model flag constant (bit mask value 2) indicating that the operation is to update the classpath of the originating project.

Since:
2.1
 
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.

Since:
2.1
 
Update model flag constant (bit mask value 8) indicating that the operation is to update the classpath of the destination project.

Since:
2.1
 
Update model flag constant (bit mask value 16) indicating that the operation is to replace the resource and the destination project's classpath entry.

Since:
2.1
 
 	int REPLACE = 16;
Attaches the source archive identified by the given absolute path to this binary package fragment root. 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.

Parameters:
sourcePath the given absolute path to the source archive or folder
rootPath 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
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 of kind binary (INVALID_ELEMENT_TYPES)
  • The path provided is not absolute (RELATIVE_PATH)
	void attachSource(IPath sourcePath, IPath rootPath, 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.

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.

Parameters:
destination the destination path
updateResourceFlags 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 end
monitor a progress monitor
Throws:
JavaModelException if this root could not be copied. Reasons include:
  • This root does not exist (ELEMENT_DOES_NOT_EXIST)
  • A CoreException occurred while copying the resource or updating a classpath
  • The destination is not inside an existing project and updateModelFlags has been specified as DESTINATION_PROJECT_CLASSPATH (INVALID_DESTINATION)
  • The sibling is not a classpath entry on the destination project's raw classpath (INVALID_SIBLING)
  • The same classpath entry already exists on the destination project's classpath (NAME_COLLISION) and updateModelFlags has not been specified as REPLACE
Since:
2.1
See also:
org.eclipse.core.resources.IResource.copy(IPath, boolean, IProgressMonitor)
	void copy(IPath destinationint updateResourceFlagsint updateModelFlagsIClasspathEntry sibling, IProgressMonitor monitorthrows 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:
org.eclipse.core.resources.IFolder.create(boolean, boolean, IProgressMonitor)
		String name,
		boolean force,
		IProgressMonitor monitor)
Deletes the resource of this package fragment root as specified by 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.

Parameters:
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
Throws:
JavaModelException if this root could not be deleted. Reasons include:
  • This root does not exist (ELEMENT_DOES_NOT_EXIST)
  • A CoreException occurred while deleting the resource or updating a classpath
Since:
2.1
See also:
org.eclipse.core.resources.IResource.delete(boolean, IProgressMonitor)
	void delete(int updateResourceFlagsint updateModelFlags, IProgressMonitor monitorthrows JavaModelException;
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.

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:
IPackageFragmentRoot.K_SOURCE
IPackageFragmentRoot.K_BINARY
	int getKind() throws JavaModelException;

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

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 IJarEntryResources. One can navigate this tree using the IJarEntryResource.getChildren() and IJarEntryResource.getParent() methods.

Returns:
an array of non-Java resources (IFiles, IFolders, or IStorages if the package fragment root is in archive) contained in this package fragment root
Throws:
JavaModelException if this element does not exist or if an exception occurs while accessing its corresponding resource.
See also:
IClasspathEntry.getInclusionPatterns()
IClasspathEntry.getExclusionPatterns()
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
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
Returns the first resolved classpath entry that corresponds to this package fragment root. A resolved classpath entry is said to correspond to a root if the path of the resolved entry is equal to the root's path.

Returns:
the first resolved 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:
3.6
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
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
Returns whether this package fragment root's underlying resource is a binary archive (a JAR or zip file).

This is a handle-only method.

Returns:
true if this package fragment root's underlying resource is a binary archive, false otherwise
	public boolean isArchive();

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.

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

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.

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.

Parameters:
destination the destination path
updateResourceFlags 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 end
monitor a progress monitor
Throws:
JavaModelException if this root could not be moved. Reasons include:
  • This root does not exist (ELEMENT_DOES_NOT_EXIST)
  • A CoreException occurred while copying the resource or updating a classpath
  • The destination is not inside an existing project and updateModelFlags has been specified as DESTINATION_PROJECT_CLASSPATH (INVALID_DESTINATION)
  • The sibling is not a classpath entry on the destination project's raw classpath (INVALID_SIBLING)
  • The same classpath entry already exists on the destination project's classpath (NAME_COLLISION) and updateModelFlags has not been specified as REPLACE
Since:
2.1
See also:
org.eclipse.core.resources.IResource.move(IPath, boolean, IProgressMonitor)
	void move(IPath destinationint updateResourceFlagsint updateModelFlagsIClasspathEntry sibling, IProgressMonitor monitorthrows JavaModelException;
New to GrepCode? Check out our FAQ X