|
|
|
|
org.eclipse.jdt.core
Interface IJavaProject
-
All Superinterfaces:
-
IAdaptable,
IJavaElement,
IOpenable,
IParent
-
public interface IJavaProject
- extends
IParent,
IJavaElement,
IOpenable
A Java project represents a view of a project resource in terms of Java
elements such as package fragments, types, methods and fields.
A project may contain several package roots, which contain package fragments.
A package root corresponds to an underlying folder or JAR.
Each Java project has a classpath, defining which folders contain source code and
where required libraries are located. Each Java project also has an output location,
defining where the builder writes .class files. A project that
references packages in another project can access the packages by including
the required project in a classpath entry. The Java model will present the
source elements in the required project; when building, the compiler will use
the corresponding generated class files from the required project's output
location(s)). The classpath format is a sequence of classpath entries
describing the location and contents of package fragment roots.
Java project elements need to be opened before they can be navigated or manipulated.
The children of a Java project are the package fragment roots that are
defined by the classpath and contained in this project (in other words, it
does not include package fragment roots for other projects).
An instance of one of these handles can be created via
JavaCore.create(project) .
-
See Also:
-
JavaCore.create(org.eclipse.core.resources.IProject) ,
IClasspathEntry
-
Restriction:
- This interface is not intended to be implemented by clients.
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
|
IClasspathEntry
|
decodeClasspathEntry
(
String encodedEntry)
Decodes the classpath entry that has been encoded in the given string
in the context of this project. |
String
|
encodeClasspathEntry
(
IClasspathEntry classpathEntry)
Encodes the given classpath entry into a string in the context of this project. |
IJavaElement
|
findElement
(
IPath path)
Returns the IJavaElement corresponding to the given
classpath-relative path, or null if no such
IJavaElement is found. |
IJavaElement
|
findElement
(
IPath path,
WorkingCopyOwner owner)
Returns the IJavaElement corresponding to the given
classpath-relative path, or null if no such
IJavaElement is found. |
IJavaElement
|
findElement
(
String bindingKey,
WorkingCopyOwner owner)
Finds the Java element corresponding to the given binding key if any,
else returns null . |
IPackageFragment
|
findPackageFragment
(
IPath path)
Returns the first existing package fragment on this project's classpath
whose path matches the given (absolute) path, or null if none
exist. |
IPackageFragmentRoot
|
findPackageFragmentRoot
(
IPath path)
Returns the existing package fragment root on this project's classpath
whose path matches the given (absolute) path, or null if
one does not exist. |
IPackageFragmentRoot[]
|
findPackageFragmentRoots
(
IClasspathEntry entry)
Returns the existing package fragment roots identified by the given entry. |
IType
|
findType
(
String fullyQualifiedName)
Returns the first type found following this project's classpath
with the given fully qualified name or null if none is found. |
IType
|
findType
(
String fullyQualifiedName,
IProgressMonitor progressMonitor)
Same functionality as
findType(String) but also look for secondary
types if given name does not match a compilation unit name. |
IType
|
findType
(
String packageName,
String typeQualifiedName)
Returns the first type found following this project's classpath
with the given package name and type qualified name
or null if none is found. |
IType
|
findType
(
String packageName,
String typeQualifiedName,
IProgressMonitor progressMonitor)
Same functionality as
findType(String, String) but also look for
secondary types if given name does not match a compilation unit name. |
IType
|
findType
(
String packageName,
String typeQualifiedName,
WorkingCopyOwner owner)
Returns the first type found following this project's classpath
with the given package name and type qualified name
or null if none is found. |
IType
|
findType
(
String packageName,
String typeQualifiedName,
WorkingCopyOwner owner,
IProgressMonitor progressMonitor)
Same functionality as
findType(String, String, WorkingCopyOwner)
but also look for secondary types if given name does not match a compilation unit name. |
IType
|
findType
(
String fullyQualifiedName,
WorkingCopyOwner owner)
Returns the first type found following this project's classpath
with the given fully qualified name or null if none is found. |
IType
|
findType
(
String fullyQualifiedName,
WorkingCopyOwner owner,
IProgressMonitor progressMonitor)
Same functionality as
findType(String, WorkingCopyOwner)
but also look for secondary types if given name does not match
a compilation unit name. |
IPackageFragmentRoot[]
|
getAllPackageFragmentRoots
()
Returns all of the existing package fragment roots that exist
on the classpath, in the order they are defined by the classpath. |
Object[]
|
getNonJavaResources
()
Returns an array of non-Java resources directly contained in this project. |
String
|
getOption
(
String optionName,
boolean inheritJavaCoreOptions)
Helper method for returning one option value only. |
Map
|
getOptions
(boolean inheritJavaCoreOptions)
Returns the table of the current custom options for this project. |
IPath
|
getOutputLocation
()
Returns the default output location for this project as a workspace-
relative absolute path. |
IPackageFragmentRoot
|
getPackageFragmentRoot
(
IResource resource)
Returns a package fragment root for the given resource, which
must either be a folder representing the top of a package hierarchy,
or a ZIP archive (e.g. a .jar , a .zip file, etc.) |
IPackageFragmentRoot
|
getPackageFragmentRoot
(
String externalLibraryPath)
Returns a package fragment root for an external library
(a ZIP archive - e.g. a .jar , a .zip file, etc. -
or - since 3.4 - a class folder) at the specified file system path. |
IPackageFragmentRoot[]
|
getPackageFragmentRoots
()
Returns all of the package fragment roots contained in this
project, identified on this project's resolved classpath. |
IPackageFragmentRoot[]
|
getPackageFragmentRoots
(
IClasspathEntry entry)
Deprecated. Use
findPackageFragmentRoots(IClasspathEntry) instead
|
IPackageFragment[]
|
getPackageFragments
()
Returns all package fragments in all package fragment roots contained
in this project. |
IProject
|
getProject
()
Returns the IProject on which this IJavaProject
was created. |
IClasspathEntry[]
|
getRawClasspath
()
Returns the raw classpath for the project, as a list of classpath
entries. |
String[]
|
getRequiredProjectNames
()
Returns the names of the projects that are directly required by this
project. |
IClasspathEntry[]
|
getResolvedClasspath
(boolean ignoreUnresolvedEntry)
This is a helper method returning the resolved classpath for the project
as a list of simple (non-variable, non-container) classpath entries. |
boolean
|
hasBuildState
()
Returns whether this project has been built at least once and thus whether it has a build state. |
boolean
|
hasClasspathCycle
(
IClasspathEntry[] entries)
Returns whether setting this project's classpath to the given classpath entries
would result in a cycle. |
boolean
|
isOnClasspath
(
IJavaElement element)
Returns whether the given element is on the classpath of this project,
that is, referenced from a classpath entry and not explicitly excluded
using an exclusion pattern. |
boolean
|
isOnClasspath
(
IResource resource)
Returns whether the given resource is on the classpath of this project,
that is, referenced from a classpath entry and not explicitly excluded
using an exclusion pattern. |
IEvaluationContext
|
newEvaluationContext
()
Creates a new evaluation context. |
ITypeHierarchy
|
newTypeHierarchy
(
IRegion region,
IProgressMonitor monitor)
Creates and returns a type hierarchy for all types in the given
region, considering subtypes within that region. |
ITypeHierarchy
|
newTypeHierarchy
(
IRegion region,
WorkingCopyOwner owner,
IProgressMonitor monitor)
Creates and returns a type hierarchy for all types in the given
region, considering subtypes within that region and considering types in the
working copies with the given owner. |
ITypeHierarchy
|
newTypeHierarchy
(
IType type,
IRegion region,
IProgressMonitor monitor)
Creates and returns a type hierarchy for the given type considering
subtypes in the specified region. |
ITypeHierarchy
|
newTypeHierarchy
(
IType type,
IRegion region,
WorkingCopyOwner owner,
IProgressMonitor monitor)
Creates and returns a type hierarchy for the given type considering
subtypes in the specified region and considering types in the
working copies with the given owner. |
IPath
|
readOutputLocation
()
Returns the default output location for the project as defined by its .classpath file from disk, or null
if unable to read the file. |
IClasspathEntry[]
|
readRawClasspath
()
Returns the raw classpath for the project as defined by its
.classpath file from disk, or null
if unable to read the file. |
void
|
setOption
(
String optionName,
String optionValue)
Helper method for setting one option value only. |
void
|
setOptions
(
Map newOptions)
Sets the project custom options. |
void
|
setOutputLocation
(
IPath path,
IProgressMonitor monitor)
Sets the default output location of this project to the location
described by the given workspace-relative absolute path. |
void
|
setRawClasspath
(
IClasspathEntry[] entries,
boolean canModifyResources,
IProgressMonitor monitor)
Sets the classpath of this project using a list of classpath entries. |
void
|
setRawClasspath
(
IClasspathEntry[] entries,
IPath outputLocation,
boolean canModifyResources,
IProgressMonitor monitor)
Sets both the classpath of this project and its default output
location at once. |
void
|
setRawClasspath
(
IClasspathEntry[] entries,
IPath outputLocation,
IProgressMonitor monitor)
Sets the both the classpath of this project and its default output
location at once. |
void
|
setRawClasspath
(
IClasspathEntry[] entries,
IProgressMonitor monitor)
Sets the classpath of this project using a list of classpath entries. |
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
|
decodeClasspathEntry
IClasspathEntry decodeClasspathEntry(
String encodedEntry)
- Decodes the classpath entry that has been encoded in the given string
in the context of this project.
Returns null if the encoded entry is malformed.
-
-
-
Parameters:
-
encodedEntry - the encoded classpath entry
-
Returns:
- the decoded classpath entry, or
null if unable to decode it -
Since:
- 3.2
encodeClasspathEntry
String encodeClasspathEntry(
IClasspathEntry classpathEntry)
- Encodes the given classpath entry into a string in the context of this project.
-
-
-
Parameters:
-
classpathEntry - the classpath entry to encode
-
Returns:
- the encoded classpath entry
-
Since:
- 3.2
findElement
IJavaElement findElement(
IPath path)
throws
JavaModelException
- Returns the
IJavaElement corresponding to the given
classpath-relative path, or null if no such
IJavaElement is found. The result is one of an
ICompilationUnit , IClassFile , or
IPackageFragment .
When looking for a package fragment, there might be several potential
matches; only one of them is returned.
For example, the path "java/lang/Object.java", would result in the
ICompilationUnit or IClassFile corresponding to
"java.lang.Object". The path "java/lang" would result in the
IPackageFragment for "java.lang".
-
-
-
Parameters:
-
path - the given classpath-relative path
-
Returns:
- the
IJavaElement corresponding to the given
classpath-relative path, or null if no such
IJavaElement is found
-
Throws:
-
JavaModelException
- if the given path is null
or absolute
findElement
IJavaElement findElement(
IPath path,
WorkingCopyOwner owner)
throws
JavaModelException
- Returns the
IJavaElement corresponding to the given
classpath-relative path, or null if no such
IJavaElement is found. The result is one of an
ICompilationUnit , IClassFile , or
IPackageFragment . If it is an ICompilationUnit ,
its owner is the given owner.
When looking for a package fragment, there might be several potential
matches; only one of them is returned.
For example, the path "java/lang/Object.java", would result in the
ICompilationUnit or IClassFile corresponding to
"java.lang.Object". The path "java/lang" would result in the
IPackageFragment for "java.lang".
-
-
-
Parameters:
-
path - the given classpath-relative path -
owner - the owner of the returned compilation unit, ignored if it is
not a compilation unit.
-
Returns:
- the
IJavaElement corresponding to the given
classpath-relative path, or null if no such
IJavaElement is found
-
Throws:
-
JavaModelException
- if the given path is null
or absolute -
Since:
- 3.0
findElement
IJavaElement findElement(
String bindingKey,
WorkingCopyOwner owner)
throws
JavaModelException
- Finds the Java element corresponding to the given binding key if any,
else returns
null . Elements are looked up using this
project's classpath. The first element corresponding to
the given key on this project's classpath is returned.
Possible elements are:
Note: if two methods correspond to the binding key because their
parameter types' simple names are the same, then the first one is returned.
For example, if a class defines two methods foo(p1.Y, String)
and foo(p2.Y, String) , in both cases the parameter type's
simple names are {"Y", "String"} . Thus
foo(p1.Y, String) is returned.
-
-
-
Parameters:
-
bindingKey - the given binding key -
owner - the owner of the returned element's compilation unit,
or null if the default working copy owner must be
used
-
Returns:
- the Java element corresponding to the given key,
or
null if no such Java element is found
-
Throws:
-
JavaModelException
- if this project does not exist or if an
exception occurs while accessing its corresponding resource -
Since:
- 3.4
findPackageFragment
IPackageFragment findPackageFragment(
IPath path)
throws
JavaModelException
- Returns the first existing package fragment on this project's classpath
whose path matches the given (absolute) path, or
null if none
exist.
The path can be:
- internal to the workbench: "/Project/src"
- external to the workbench: "c:/jdk/classes.zip/java/lang"
-
-
-
Parameters:
-
path - the given absolute path
-
Returns:
- the first existing package fragment on this project's classpath
whose path matches the given (absolute) path, or
null if none
exist
-
Throws:
-
JavaModelException
- if this project does not exist or if an
exception occurs while accessing its corresponding resource
findPackageFragmentRoot
IPackageFragmentRoot findPackageFragmentRoot(
IPath path)
throws
JavaModelException
- Returns the existing package fragment root on this project's classpath
whose path matches the given (absolute) path, or
null if
one does not exist.
The path can be:
- internal to the workbench: "/Compiler/src"
- external to the workbench: "c:/jdk/classes.zip"
-
-
-
Parameters:
-
path - the given absolute path
-
Returns:
- the existing package fragment root on this project's classpath
whose path matches the given (absolute) path, or
null if
one does not exist
-
Throws:
-
JavaModelException
- if this project does not exist or if an
exception occurs while accessing its corresponding resource
findPackageFragmentRoots
IPackageFragmentRoot[] findPackageFragmentRoots(
IClasspathEntry entry)
- Returns the existing package fragment roots identified by the given entry.
Note that a classpath entry that refers to another project may
have more than one root (if that project has more than on root
containing source), and classpath entries within the current
project identify a single root.
If the classpath entry denotes a variable, it will be resolved and return
the roots of the target entry (empty if not resolvable).
If the classpath entry denotes a container, it will be resolved and return
the roots corresponding to the set of container entries (empty if not resolvable).
-
-
-
Parameters:
-
entry - the given entry
-
Returns:
- the existing package fragment roots identified by the given entry
-
Since:
- 2.1
-
See Also:
-
IClasspathContainer
findType
IType findType(
String fullyQualifiedName)
throws
JavaModelException
- Returns the first type found following this project's classpath
with the given fully qualified name or
null if none is found.
The fully qualified name is a dot-separated name. For example,
a class B defined as a member type of a class A in package x.y should have a
the fully qualified name "x.y.A.B".
Note that in order to be found, a type name (or its toplevel enclosing
type name) must match its corresponding compilation unit name. As a
consequence, secondary types cannot be found using this functionality.
To find secondary types use
findType(String, IProgressMonitor) instead.
-
-
-
Parameters:
-
fullyQualifiedName - the given fully qualified name
-
Returns:
- the first type found following this project's classpath
with the given fully qualified name or
null if none is found
-
Throws:
-
JavaModelException
- if this project does not exist or if an
exception occurs while accessing its corresponding resource -
Since:
- 2.0
-
See Also:
-
IType.getFullyQualifiedName(char)
findType
IType findType(
String fullyQualifiedName,
IProgressMonitor progressMonitor)
throws
JavaModelException
- Same functionality as
findType(String) but also look for secondary
types if given name does not match a compilation unit name.
-
-
-
Parameters:
-
fullyQualifiedName - the given fully qualified name -
progressMonitor - the progress monitor to report progress to,
or null if no progress monitor is provided
-
Returns:
- the first type found following this project's classpath
with the given fully qualified name or
null if none is found
-
Throws:
-
JavaModelException
- if this project does not exist or if an
exception occurs while accessing its corresponding resource -
Since:
- 3.2
-
See Also:
-
IType.getFullyQualifiedName(char)
findType
IType findType(
String fullyQualifiedName,
WorkingCopyOwner owner)
throws
JavaModelException
- Returns the first type found following this project's classpath
with the given fully qualified name or
null if none is found.
The fully qualified name is a dot-separated name. For example,
a class B defined as a member type of a class A in package x.y should have a
the fully qualified name "x.y.A.B".
If the returned type is part of a compilation unit, its owner is the given
owner.
Note that in order to be found, a type name (or its toplevel enclosing
type name) must match its corresponding compilation unit name. As a
consequence, secondary types cannot be found using this functionality.
To find secondary types use
findType(String, WorkingCopyOwner, IProgressMonitor)
instead.
-
-
-
Parameters:
-
fullyQualifiedName - the given fully qualified name -
owner - the owner of the returned type's compilation unit
-
Returns:
- the first type found following this project's classpath
with the given fully qualified name or
null if none is found
-
Throws:
-
JavaModelException
- if this project does not exist or if an
exception occurs while accessing its corresponding resource -
Since:
- 3.0
-
See Also:
-
IType.getFullyQualifiedName(char)
findType
IType findType(
String fullyQualifiedName,
WorkingCopyOwner owner,
IProgressMonitor progressMonitor)
throws
JavaModelException
- Same functionality as
findType(String, WorkingCopyOwner)
but also look for secondary types if given name does not match
a compilation unit name.
-
-
-
Parameters:
-
fullyQualifiedName - the given fully qualified name -
owner - the owner of the returned type's compilation unit -
progressMonitor - the progress monitor to report progress to,
or null if no progress monitor is provided
-
Returns:
- the first type found following this project's classpath
with the given fully qualified name or
null if none is found
-
Throws:
-
JavaModelException
- if this project does not exist or if an
exception occurs while accessing its corresponding resource -
Since:
- 3.2
-
See Also:
-
IType.getFullyQualifiedName(char)
findType
IType findType(
String packageName,
String typeQualifiedName)
throws
JavaModelException
- Returns the first type found following this project's classpath
with the given package name and type qualified name
or
null if none is found.
The package name is a dot-separated name.
The type qualified name is also a dot-separated name. For example,
a class B defined as a member type of a class A should have the
type qualified name "A.B".
Note that in order to be found, a type name (or its toplevel enclosing
type name) must match its corresponding compilation unit name. As a
consequence, secondary types cannot be found using this functionality.
To find secondary types use
findType(String, String, IProgressMonitor)
instead.
-
-
-
Parameters:
-
packageName - the given package name -
typeQualifiedName - the given type qualified name
-
Returns:
- the first type found following this project's classpath
with the given package name and type qualified name
or
null if none is found
-
Throws:
-
JavaModelException
- if this project does not exist or if an
exception occurs while accessing its corresponding resource -
Since:
- 2.0
-
See Also:
-
IType.getTypeQualifiedName(char)
findType
IType findType(
String packageName,
String typeQualifiedName,
IProgressMonitor progressMonitor)
throws
JavaModelException
- Same functionality as
findType(String, String) but also look for
secondary types if given name does not match a compilation unit name.
-
-
-
Parameters:
-
packageName - the given package name -
typeQualifiedName - the given type qualified name -
progressMonitor - the progress monitor to report progress to,
or null if no progress monitor is provided
-
Returns:
- the first type found following this project's classpath
with the given fully qualified name or
null if none is found
-
Throws:
-
JavaModelException
- if this project does not exist or if an
exception occurs while accessing its corresponding resource -
Since:
- 3.2
-
See Also:
-
IType.getFullyQualifiedName(char)
findType
IType findType(
String packageName,
String typeQualifiedName,
WorkingCopyOwner owner)
throws
JavaModelException
- Returns the first type found following this project's classpath
with the given package name and type qualified name
or
null if none is found.
The package name is a dot-separated name.
The type qualified name is also a dot-separated name. For example,
a class B defined as a member type of a class A should have the
type qualified name "A.B".
If the returned type is part of a compilation unit, its owner is the given
owner.
Note that in order to be found, a type name (or its toplevel enclosing
type name) must match its corresponding compilation unit name. As a
consequence, secondary types cannot be found using this functionality.
To find secondary types use
findType(String, String, WorkingCopyOwner, IProgressMonitor)
instead.
-
-
-
Parameters:
-
packageName - the given package name -
typeQualifiedName - the given type qualified name -
owner - the owner of the returned type's compilation unit
-
Returns:
- the first type found following this project's classpath
with the given package name and type qualified name
or
null if none is found
-
Throws:
-
JavaModelException
- if this project does not exist or if an
exception occurs while accessing its corresponding resource -
Since:
- 3.0
-
See Also:
-
IType.getTypeQualifiedName(char)
findType
IType findType(
String packageName,
String typeQualifiedName,
WorkingCopyOwner owner,
IProgressMonitor progressMonitor)
throws
JavaModelException
- Same functionality as
findType(String, String, WorkingCopyOwner)
but also look for secondary types if given name does not match a compilation unit name.
-
-
-
Parameters:
-
packageName - the given package name -
typeQualifiedName - the given type qualified name -
owner - the owner of the returned type's compilation unit -
progressMonitor - the progress monitor to report progress to,
or null if no progress monitor is provided
-
Returns:
- the first type found following this project's classpath
with the given fully qualified name or
null if none is found
-
Throws:
-
JavaModelException
- if this project does not exist or if an
exception occurs while accessing its corresponding resource -
Since:
- 3.2
-
See Also:
-
IType.getFullyQualifiedName(char)
getAllPackageFragmentRoots
IPackageFragmentRoot[] getAllPackageFragmentRoots()
throws
JavaModelException
- Returns all of the existing package fragment roots that exist
on the classpath, in the order they are defined by the classpath.
-
-
-
Returns:
- all of the existing package fragment roots that exist
on the classpath
-
Throws:
-
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resource
getNonJavaResources
Object[] getNonJavaResources()
throws
JavaModelException
- Returns an array of non-Java resources directly contained in this project.
It does not transitively answer non-Java resources contained in folders;
these would have to be explicitly iterated over.
Non-Java resources includes other files and folders located in the
project not accounted for by any of it source or binary package fragment
roots. If the project is a source folder itself, resources excluded from the
corresponding source classpath entry by one or more exclusion patterns
are considered non-Java resources and will appear in the result
(possibly in a folder)
-
-
-
Returns:
- an array of non-Java resources (
IFile s and/or
IFolder s) directly contained in this project
-
Throws:
-
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resource
getOption
String getOption(
String optionName,
boolean inheritJavaCoreOptions)
- Helper method for returning one option value only. Equivalent to
(String)this.getOptions(inheritJavaCoreOptions).get(optionName)
Note that it may answer null if this option does not exist, or if there is no custom value for it.
For a complete description of the configurable options, see JavaCore#getDefaultOptions .
-
-
-
Parameters:
-
optionName - the name of an option -
inheritJavaCoreOptions - - boolean indicating whether JavaCore options should be inherited as well
-
Returns:
- the String value of a given option
-
Since:
- 2.1
-
See Also:
-
JavaCore.getDefaultOptions()
getOptions
Map getOptions(boolean inheritJavaCoreOptions)
- Returns the table of the current custom options for this project. Projects remember their custom options,
in other words, only the options different from the the JavaCore global options for the workspace.
A boolean argument allows to directly merge the project options with global ones from
JavaCore .
For a complete description of the configurable options, see JavaCore#getDefaultOptions .
-
-
-
Parameters:
-
inheritJavaCoreOptions - - boolean indicating whether JavaCore options should be inherited as well
-
Returns:
- table of current settings of all options
(key type:
String ; value type: String ) -
Since:
- 2.1
-
See Also:
-
JavaCore.getDefaultOptions()
getOutputLocation
IPath getOutputLocation()
throws
JavaModelException
- Returns the default output location for this project as a workspace-
relative absolute path.
The default output location is where class files are ordinarily generated
(and resource files, copied). Each source classpath entry can also
specify an output location for the generated class files (and copied
resource files) corresponding to compilation units under that source
folder. This makes it possible to arrange generated class files for
different source folders in different output folders, and not
necessarily the default output folder. This means that the generated
class files for the project may end up scattered across several folders,
rather than all in the default output folder (which is more standard).
-
-
-
Returns:
- the workspace-relative absolute path of the default output folder
-
Throws:
-
JavaModelException
- if this element does not exist -
See Also:
-
setOutputLocation(org.eclipse.core.runtime.IPath, IProgressMonitor) ,
IClasspathEntry.getOutputLocation()
getPackageFragmentRoot
IPackageFragmentRoot getPackageFragmentRoot(
String externalLibraryPath)
- Returns a package fragment root for an external library
(a ZIP archive - e.g. a
.jar , a .zip file, etc. -
or - since 3.4 - a class folder) at the specified file system path.
This is a handle-only method. The underlying java.io.File
may or may not exist. No resource is associated with this local library
package fragment root.
-
-
-
Parameters:
-
externalLibraryPath - the library's file system path
-
Returns:
- a package fragment root for the external library at the specified file system path
getPackageFragmentRoot
IPackageFragmentRoot getPackageFragmentRoot(
IResource resource)
- Returns a package fragment root for the given resource, which
must either be a folder representing the top of a package hierarchy,
or a ZIP archive (e.g. a
.jar , a .zip file, etc.)
This is a handle-only method. The underlying resource may or may not exist.
-
-
-
Parameters:
-
resource - the given resource
-
Returns:
- a package fragment root for the given resource, which
must either be a folder representing the top of a package hierarchy,
or a ZIP archive (e.g. a
.jar , a .zip file, etc.)
getPackageFragmentRoots
IPackageFragmentRoot[] getPackageFragmentRoots()
throws
JavaModelException
- Returns all of the package fragment roots contained in this
project, identified on this project's resolved classpath. The result
does not include package fragment roots in other projects referenced
on this project's classpath.
NOTE: This is equivalent to getChildren() .
-
-
-
Returns:
- all of the package fragment roots contained in this
project, identified on this project's resolved classpath
-
Throws:
-
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resource
getPackageFragmentRoots
IPackageFragmentRoot[] getPackageFragmentRoots(
IClasspathEntry entry)
-
Deprecated. Use
findPackageFragmentRoots(IClasspathEntry) instead
- Returns the existing package fragment roots identified by the given entry.
Note that a classpath entry that refers to another project may
have more than one root (if that project has more than on root
containing source), and classpath entries within the current
project identify a single root.
If the classpath entry denotes a variable, it will be resolved and return
the roots of the target entry (empty if not resolvable).
If the classpath entry denotes a container, it will be resolved and return
the roots corresponding to the set of container entries (empty if not resolvable).
-
-
-
Parameters:
-
entry - the given entry
-
Returns:
- the existing package fragment roots identified by the given entry
-
See Also:
-
IClasspathContainer
getPackageFragments
IPackageFragment[] getPackageFragments()
throws
JavaModelException
- Returns all package fragments in all package fragment roots contained
in this project. This is a convenience method.
Note that the package fragment roots corresponds to the resolved
classpath of the project.
-
-
-
Returns:
- all package fragments in all package fragment roots contained
in this project
-
Throws:
-
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resource
getProject
IProject getProject()
- Returns the
IProject on which this IJavaProject
was created. This is handle-only method.
-
-
-
Returns:
- the
IProject on which this IJavaProject
was created
getRawClasspath
IClasspathEntry[] getRawClasspath()
throws
JavaModelException
- Returns the raw classpath for the project, as a list of classpath
entries. This corresponds to the exact set of entries which were assigned
using
setRawClasspath , in particular such a classpath may
contain classpath variable and classpath container entries. Classpath
variable and classpath container entries can be resolved using the
helper method getResolvedClasspath ; classpath variable
entries also can be resolved individually using
JavaCore#getClasspathVariable ).
Both classpath containers and classpath variables provides a level of
indirection that can make the .classpath file stable across
workspaces.
As an example, classpath variables allow a classpath to no longer refer
directly to external JARs located in some user specific location.
The classpath can simply refer to some variables defining the proper
locations of these external JARs. Similarly, classpath containers
allows classpath entries to be computed dynamically by the plug-in that
defines that kind of classpath container.
Note that in case the project isn't yet opened, the classpath will
be read directly from the associated .classpath file.
-
-
-
Returns:
- the raw classpath for the project, as a list of classpath entries
-
Throws:
-
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resource -
See Also:
-
IClasspathEntry
getRequiredProjectNames
String[] getRequiredProjectNames()
throws
JavaModelException
- Returns the names of the projects that are directly required by this
project. A project is required if it is in its classpath.
The project names are returned in the order they appear on the classpath.
-
-
-
Returns:
- the names of the projects that are directly required by this
project in classpath order
-
Throws:
-
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resource
getResolvedClasspath
IClasspathEntry[] getResolvedClasspath(boolean ignoreUnresolvedEntry)
throws
JavaModelException
- This is a helper method returning the resolved classpath for the project
as a list of simple (non-variable, non-container) classpath entries.
All classpath variable and classpath container entries in the project's
raw classpath will be replaced by the simple classpath entries they
resolve to.
The resulting resolved classpath is accurate for the given point in time.
If the project's raw classpath is later modified, or if classpath
variables are changed, the resolved classpath can become out of date.
Because of this, hanging on resolved classpath is not recommended.
Note that if the resolution creates duplicate entries
(i.e.
entries which are
Object.equals(Object)
),
only the first one is added to the resolved classpath.
-
-
-
Parameters:
-
ignoreUnresolvedEntry - indicates how to handle unresolvable
variables and containers; true indicates that missing
variables and unresolvable classpath containers should be silently
ignored, and that the resulting list should consist only of the
entries that could be successfully resolved; false indicates
that a JavaModelException should be thrown for the first
unresolved variable or container
-
Returns:
- the resolved classpath for the project as a list of simple
classpath entries, where all classpath variable and container entries
have been resolved and substituted with their final target entries
-
Throws:
-
JavaModelException
- in one of the corresponding situation:
- this element does not exist
- an exception occurs while accessing its corresponding resource
- a classpath variable or classpath container was not resolvable
and
ignoreUnresolvedEntry is false .
-
See Also:
-
IClasspathEntry
hasBuildState
boolean hasBuildState()
- Returns whether this project has been built at least once and thus whether it has a build state.
-
-
-
Returns:
- true if this project has been built at least once, false otherwise
hasClasspathCycle
boolean hasClasspathCycle(
IClasspathEntry[] entries)
- Returns whether setting this project's classpath to the given classpath entries
would result in a cycle.
If the set of entries contains some variables, those are resolved in order to determine
cycles.
-
-
-
Parameters:
-
entries - the given classpath entries
-
Returns:
- true if the given classpath entries would result in a cycle, false otherwise
isOnClasspath
boolean isOnClasspath(
IJavaElement element)
- Returns whether the given element is on the classpath of this project,
that is, referenced from a classpath entry and not explicitly excluded
using an exclusion pattern.
-
-
-
Parameters:
-
element - the given element
-
Returns:
-
true if the given element is on the classpath of
this project, false otherwise -
Since:
- 2.0
-
See Also:
-
IClasspathEntry.getInclusionPatterns() ,
IClasspathEntry.getExclusionPatterns()
isOnClasspath
boolean isOnClasspath(
IResource resource)
- Returns whether the given resource is on the classpath of this project,
that is, referenced from a classpath entry and not explicitly excluded
using an exclusion pattern.
-
-
-
Parameters:
-
resource - the given resource
-
Returns:
-
true if the given resource is on the classpath of
this project, false otherwise -
Since:
- 2.1
-
See Also:
-
IClasspathEntry.getInclusionPatterns() ,
IClasspathEntry.getExclusionPatterns()
newEvaluationContext
IEvaluationContext newEvaluationContext()
- Creates a new evaluation context.
-
-
-
Returns:
- a new evaluation context.
newTypeHierarchy
ITypeHierarchy newTypeHierarchy(
IRegion region,
IProgressMonitor monitor)
throws
JavaModelException
- Creates and returns a type hierarchy for all types in the given
region, considering subtypes within that region.
-
-
-
Parameters:
-
monitor - the given progress monitor -
region - the given region
-
Returns:
- a type hierarchy for all types in the given
region, considering subtypes within that region
-
Throws:
-
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resource
-
IllegalArgumentException
- if region is null
newTypeHierarchy
ITypeHierarchy newTypeHierarchy(
IRegion region,
WorkingCopyOwner owner,
IProgressMonitor monitor)
throws
JavaModelException
- Creates and returns a type hierarchy for all types in the given
region, considering subtypes within that region and considering types in the
working copies with the given owner.
In other words, the owner's working copies will take
precedence over their original compilation units in the workspace.
Note that if a working copy is empty, it will be as if the original compilation
unit had been deleted.
-
-
-
Parameters:
-
monitor - the given progress monitor -
region - the given region -
owner - the owner of working copies that take precedence over their original compilation units
-
Returns:
- a type hierarchy for all types in the given
region, considering subtypes within that region
-
Throws:
-
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resource
-
IllegalArgumentException
- if region is null
-
Since:
- 3.0
newTypeHierarchy
ITypeHierarchy newTypeHierarchy(
IType type,
IRegion region,
IProgressMonitor monitor)
throws
JavaModelException
- Creates and returns a type hierarchy for the given type considering
subtypes in the specified region.
-
-
-
Parameters:
-
type - the given type -
region - the given region -
monitor - the given monitor
-
Returns:
- a type hierarchy for the given type considering
subtypes in the specified region
-
Throws:
-
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resource
-
IllegalArgumentException
- if type or region is null
newTypeHierarchy
ITypeHierarchy newTypeHierarchy(
IType type,
IRegion region,
WorkingCopyOwner owner,
IProgressMonitor monitor)
throws
JavaModelException
- Creates and returns a type hierarchy for the given type considering
subtypes in the specified region and considering types in the
working copies with the given owner.
In other words, the owner's working copies will take
precedence over their original compilation units in the workspace.
Note that if a working copy is empty, it will be as if the original compilation
unit had been deleted.
-
-
-
Parameters:
-
type - the given type -
region - the given region -
monitor - the given monitor -
owner - the owner of working copies that take precedence over their original compilation units
-
Returns:
- a type hierarchy for the given type considering
subtypes in the specified region
-
Throws:
-
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resource
-
IllegalArgumentException
- if type or region is null
-
Since:
- 3.0
readOutputLocation
IPath readOutputLocation()
- Returns the default output location for the project as defined by its
.classpath file from disk, or null
if unable to read the file.
This output location may differ from the in-memory one returned by getOutputLocation , in case the
automatic reconciliation mechanism has not been performed yet. Usually, any change to the .classpath file
is automatically noticed and reconciled at the next resource change notification event.
However, if the file is modified within an operation, where this change needs to be taken into account before the
operation ends, then the output location from disk can be read using this method, and further assigned to the project
using setRawClasspath(...) .
The default output location is where class files are ordinarily generated
(and resource files, copied). Each source classpath entry can also
specify an output location for the generated class files (and copied
resource files) corresponding to compilation units under that source
folder. This makes it possible to arrange generated class files for
different source folders in different output folders, and not
necessarily the default output folder. This means that the generated
class files for the project may end up scattered across several folders,
rather than all in the default output folder (which is more standard).
In order to manually force a project classpath refresh, one can simply assign the project classpath using the result of this
method, as follows:
proj.setRawClasspath(proj.readRawClasspath(), proj.readOutputLocation(), monitor)
(note that the readRawClasspath/readOutputLocation methods could return null ).
-
-
-
Returns:
- the workspace-relative absolute path of the default output folder
-
Since:
- 3.0
-
See Also:
-
getOutputLocation()
readRawClasspath
IClasspathEntry[] readRawClasspath()
- Returns the raw classpath for the project as defined by its
.classpath file from disk, or null
if unable to read the file.
This classpath may differ from the in-memory classpath returned by
getRawClasspath , in case the automatic reconciliation
mechanism has not been performed yet. Usually, any change to the
.classpath file is automatically noticed and reconciled at
the next resource change notification event. However, if the file is
modified within an operation, where this change needs to be taken into
account before the operation ends, then the classpath from disk can be
read using this method, and further assigned to the project using
setRawClasspath(...) .
Classpath variable and classpath container entries can be resolved using
the helper method getResolvedClasspath ; classpath variable
entries also can be resolved individually using
JavaCore#getClasspathVariable ).
Note that no check is performed whether the project has the Java nature
set, allowing an existing .classpath file to be considered
independantly (unlike getRawClasspath which requires the
Java nature to be associated with the project).
In order to manually force a project classpath refresh, one can simply
assign the project classpath using the result of this method, as follows:
proj.setRawClasspath(proj.readRawClasspath(), proj.readOutputLocation(), monitor)
(note that the readRawClasspath/readOutputLocation methods
could return null ).
-
-
-
Returns:
- the raw classpath from disk for the project, as a list of
classpath entries
-
Since:
- 3.0
-
See Also:
-
getRawClasspath() ,
IClasspathEntry
setOption
void setOption(
String optionName,
String optionValue)
- Helper method for setting one option value only.
Equivalent to:
Map options = this.getOptions(false);
map.put(optionName, optionValue);
this.setOptions(map)
For a complete description of the configurable options, see JavaCore#getDefaultOptions .
-
-
-
Parameters:
-
optionName - the name of an option -
optionValue - the value of the option to set. If null , then the option
is removed from project preferences.
-
Throws:
-
NullPointerException
- if optionName is null
(see
Preferences.put(String, String)
). -
Since:
- 3.0
-
See Also:
-
JavaCore.getDefaultOptions()
setOptions
void setOptions(
Map newOptions)
- Sets the project custom options. All and only the options explicitly included in the given table
are remembered; all previous option settings are forgotten, including ones not explicitly
mentioned.
For a complete description of the configurable options, see JavaCore#getDefaultOptions .
-
-
-
Parameters:
-
newOptions - the new options (key type: String ; value type: String ),
or null to flush all custom options (clients will automatically get the global JavaCore options). -
Since:
- 2.1
-
See Also:
-
JavaCore.getDefaultOptions()
setOutputLocation
void setOutputLocation(
IPath path,
IProgressMonitor monitor)
throws
JavaModelException
- Sets the default output location of this project to the location
described by the given workspace-relative absolute path.
The default output location is where class files are ordinarily generated
(and resource files, copied). Each source classpath entries can also
specify an output location for the generated class files (and copied
resource files) corresponding to compilation units under that source
folder. This makes it possible to arrange that generated class files for
different source folders to end up in different output folders, and not
necessarily the default output folder. This means that the generated
class files for the project may end up scattered across several folders,
rather than all in the default output folder (which is more standard).
-
-
-
Parameters:
-
path - the workspace-relative absolute path of the default output
folder -
monitor - the progress monitor
-
Throws:
-
JavaModelException
- if the classpath could not be set. Reasons include:
- This Java element does not exist (ELEMENT_DOES_NOT_EXIST)
- The path refers to a location not contained in this project (
PATH_OUTSIDE_PROJECT )
- The path is not an absolute path (
RELATIVE_PATH )
- The path is nested inside a package fragment root of this project (
INVALID_PATH )
- The output location is being modified during resource change event notification (CORE_EXCEPTION)
-
See Also:
-
getOutputLocation() ,
IClasspathEntry.getOutputLocation()
setRawClasspath
void setRawClasspath(
IClasspathEntry[] entries,
IPath outputLocation,
boolean canModifyResources,
IProgressMonitor monitor)
throws
JavaModelException
- Sets both the classpath of this project and its default output
location at once. The classpath is defined using a list of classpath
entries. In particular such a classpath may contain classpath variable entries.
Classpath variable entries can be resolved individually (
JavaCore.getClasspathVariable(String) ),
or the full classpath can be resolved at once using the helper method
getResolvedClasspath(boolean) .
A classpath variable provides an indirection level for better sharing a classpath. As an example, it allows
a classpath to no longer refer directly to external JARs located in some user specific location. The classpath
can simply refer to some variables defining the proper locations of these external JARs.
If it is specified that this operation cannot modify resources, the .classpath file will not be written to disk
and no error marker will be generated. To synchronize the .classpath with the in-memory classpath,
one can use setRawClasspath(readRawClasspath(), true, monitor) .
Setting the classpath to null specifies a default classpath
(the project root). Setting the classpath to an empty array specifies an
empty classpath.
If a cycle is detected while setting this classpath (and if resources can be modified), an error marker will be added
to the project closing the cycle.
To avoid this problem, use
hasClasspathCycle(IClasspathEntry[])
before setting the classpath.
This operation acquires a lock on the workspace's root.
-
-
-
Parameters:
-
entries - a list of classpath entries -
outputLocation - the default output location -
canModifyResources - whether resources should be written to disk if needed -
monitor - the given progress monitor
-
Throws:
-
JavaModelException
- if the classpath could not be set. Reasons include:
-
Since:
- 3.2
-
See Also:
-
IClasspathEntry
setRawClasspath
void setRawClasspath(
IClasspathEntry[] entries,
boolean canModifyResources,
IProgressMonitor monitor)
throws
JavaModelException
- Sets the classpath of this project using a list of classpath entries. In particular such a classpath may contain
classpath variable entries. Classpath variable entries can be resolved individually (
JavaCore.getClasspathVariable(String) ),
or the full classpath can be resolved at once using the helper method
getResolvedClasspath(boolean) .
A classpath variable provides an indirection level for better sharing a classpath. As an example, it allows
a classpath to no longer refer directly to external JARs located in some user specific location. The classpath
can simply refer to some variables defining the proper locations of these external JARs.
If it is specified that this operation cannot modify resources, the .classpath file will not be written to disk
and no error marker will be generated. To synchronize the .classpath with the in-memory classpath,
one can use setRawClasspath(readRawClasspath(), true, monitor) .
Setting the classpath to null specifies a default classpath
(the project root). Setting the classpath to an empty array specifies an
empty classpath.
If a cycle is detected while setting this classpath (and if resources can be modified), an error marker will be added
to the project closing the cycle.
To avoid this problem, use
hasClasspathCycle(IClasspathEntry[])
before setting the classpath.
This operation acquires a lock on the workspace's root.
-
-
-
Parameters:
-
entries - a list of classpath entries -
canModifyResources - whether resources should be written to disk if needed -
monitor - the given progress monitor
-
Throws:
-
JavaModelException
- if the classpath could not be set. Reasons include:
-
Since:
- 3.2
-
See Also:
-
IClasspathEntry
setRawClasspath
void setRawClasspath(
IClasspathEntry[] entries,
IProgressMonitor monitor)
throws
JavaModelException
- Sets the classpath of this project using a list of classpath entries. In particular such a classpath may contain
classpath variable entries. Classpath variable entries can be resolved individually (
JavaCore.getClasspathVariable(String) ),
or the full classpath can be resolved at once using the helper method
getResolvedClasspath(boolean) .
A classpath variable provides an indirection level for better sharing a classpath. As an example, it allows
a classpath to no longer refer directly to external JARs located in some user specific location. The classpath
can simply refer to some variables defining the proper locations of these external JARs.
Setting the classpath to null specifies a default classpath
(the project root). Setting the classpath to an empty array specifies an
empty classpath.
If a cycle is detected while setting this classpath, an error marker will be added
to the project closing the cycle.
To avoid this problem, use
hasClasspathCycle(IClasspathEntry[])
before setting the classpath.
This operation acquires a lock on the workspace's root.
-
-
-
Parameters:
-
entries - a list of classpath entries -
monitor - the given progress monitor
-
Throws:
-
JavaModelException
- if the classpath could not be set. Reasons include:
-
See Also:
-
IClasspathEntry
setRawClasspath
void setRawClasspath(
IClasspathEntry[] entries,
IPath outputLocation,
IProgressMonitor monitor)
throws
JavaModelException
- Sets the both the classpath of this project and its default output
location at once. The classpath is defined using a list of classpath
entries. In particular, such a classpath may contain classpath variable
entries. Classpath variable entries can be resolved individually (see
(
JavaCore.getClasspathVariable(String) ), or the full classpath can be
resolved at once using the helper method
getResolvedClasspath(boolean) .
A classpath variable provides an indirection level for better sharing a
classpath. As an example, it allows a classpath to no longer refer
directly to external JARs located in some user specific location. The
classpath can simply refer to some variables defining the proper
locations of these external JARs.
Setting the classpath to null specifies a default classpath
(the project root). Setting the classpath to an empty array specifies an
empty classpath.
If a cycle is detected while setting this classpath, an error marker will
be added to the project closing the cycle. To avoid this problem, use
hasClasspathCycle(IClasspathEntry[]) before setting
the classpath.
This operation acquires a lock on the workspace's root.
-
-
-
Parameters:
-
entries - a list of classpath entries -
monitor - the progress monitor -
outputLocation - the default output location
-
Throws:
-
JavaModelException
- if the classpath could not be set. Reasons
include:
- This Java element does not exist (ELEMENT_DOES_NOT_EXIST)
- Two or more entries specify source roots with the same or overlapping paths (NAME_COLLISION)
- A entry of kind
CPE_PROJECT refers to this project (INVALID_PATH)
- This Java element does not exist (ELEMENT_DOES_NOT_EXIST)
- The output location path refers to a location not contained in this project (
PATH_OUTSIDE_PROJECT )
- The output location path is not an absolute path (
RELATIVE_PATH )
- The output location path is nested inside a package fragment root of this project (
INVALID_PATH )
- The classpath is being modified during resource change event notification (CORE_EXCEPTION)
-
Since:
- 2.0
-
See Also:
-
IClasspathEntry
Copyright (c) IBM Corp. and others 2000, 2008. All Rights Reserved.
|
|
|