|
Eclipse JDT 2.0 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
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, and when building, the compiler will
use the binaries from that project (that is, the output location of the
required project is used as a library). The classpath format is a sequence
of classpath entries describing the location and contents of package fragment
roots.
This interface is not intended to be implemented by clients. An instance
of one of these handles can be created via
JavaCore.create(project)
.
JavaCore.create(org.eclipse.core.resources.IProject)
,
IClasspathEntry
Field Summary |
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 | |
IJavaElement |
findElement(IPath path)
Returns the IJavaElement corresponding to the given
classpath-relative path, or null if no such
IJavaElement is found. |
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. |
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 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. |
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. |
IPath |
getOutputLocation()
Returns the full path to the location where the builder writes .class files. |
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 .jar or .zip file. |
IPackageFragmentRoot |
getPackageFragmentRoot(String jarPath)
Returns a package fragment root for the JAR 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)
Returns the existing package fragment roots identified by the given entry. |
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 ignoreUnresolvedVariable)
This is a helper method returning the resolved classpath for the project, as a list of classpath entries, where all classpath variable entries have been resolved and substituted with their final target 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. |
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(IType type,
IRegion region,
IProgressMonitor monitor)
Creates and returns a type hierarchy for the given type considering subtypes in the specified region. |
void |
setOutputLocation(IPath path,
IProgressMonitor monitor)
Sets the output location of this project to the location described by the given absolute path. |
void |
setRawClasspath(IClasspathEntry[] entries,
IPath outputLocation,
IProgressMonitor monitor)
Sets the both the classpath of this project and its 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.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 |
Method Detail |
public IJavaElement findElement(IPath path) throws JavaModelException
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".
path
- the given classpath-relative path
IJavaElement
corresponding to the given
classpath-relative path, or null
if no such
IJavaElement
is found
JavaModelException
- if the given path is null
or absolutepublic IPackageFragment findPackageFragment(IPath path) throws JavaModelException
null
if none
exist.
The path can be:
- internal to the workbench: "/Project/src"
- external to the workbench: "c:/jdk/classes.zip/java/lang"
path
- the given absolute path
null
if none
exist
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourcepublic IPackageFragmentRoot findPackageFragmentRoot(IPath path) throws JavaModelException
null
if
one does not exist.
The path can be:
- internal to the workbench: "/Compiler/src"
- external to the workbench: "c:/jdk/classes.zip"
path
- the given absolute path
null
if
one does not exist
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourcepublic IType findType(String fullyQualifiedName) throws JavaModelException
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".
fullyQualifiedName
- the given fully qualified name
null
if none is found
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourceIType.getFullyQualifiedName(char)
public IType findType(String packageName, String typeQualifiedName) throws JavaModelException
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".
packageName
- the given package nametypeQualifiedName
- the given type qualified name
null
if none is found
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourceIType.getTypeQualifiedName(char)
public IPackageFragmentRoot[] getAllPackageFragmentRoots() throws JavaModelException
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourcepublic Object[] getNonJavaResources() throws JavaModelException
JavaModelException
public IPath getOutputLocation() throws JavaModelException
.class
files.
.class
files
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourcepublic IPackageFragmentRoot getPackageFragmentRoot(String jarPath)
java.io.File
may or may not exist. No resource is associated with this local JAR
package fragment root.
jarPath
- the jars's file system path
public IPackageFragmentRoot getPackageFragmentRoot(IResource resource)
.jar
or .zip
file.
This is a handle-only method. The underlying resource may or may not exist.
resource
- the given resource
.jar
or .zip
filepublic IPackageFragmentRoot[] getPackageFragmentRoots() throws JavaModelException
NOTE: This is equivalent to getChildren()
.
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourcepublic IPackageFragmentRoot[] getPackageFragmentRoots(IClasspathEntry entry)
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).
entry
- the given entry
IClasspathContainer
public IPackageFragment[] getPackageFragments() throws JavaModelException
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourcepublic IProject getProject()
IProject
on which this IJavaProject
was created. This is handle-only method.
IProject
on which this IJavaProject
was createdpublic IClasspathEntry[] getRawClasspath() throws JavaModelException
setRawClasspath
, in particular such a classpath may contain
classpath variable entries. Classpath variable entries can be resolved individually (see JavaCore#getClasspathVariable
),
or the full classpath can be resolved at once using the helper method getResolvedClasspath
.
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.
Note that in case the project isn't yet opened, the classpath will directly be read from the associated .classpath file.
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourceIClasspathEntry
public String[] getRequiredProjectNames() throws JavaModelException
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourcepublic IClasspathEntry[] getResolvedClasspath(boolean ignoreUnresolvedVariable) throws JavaModelException
A resolved classpath corresponds to a particular instance of the raw classpath bound in the context of the current values of the referred variables, and thus should not be persisted.
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.
The boolean argument ignoreUnresolvedVariable
allows to specify how to handle unresolvable variables,
when set to true
, missing variables are simply ignored, the resulting path is then only formed of the
resolvable entries, without any indication about which variable(s) was ignored. When set to false
, a
JavaModelException will be thrown for the first unresolved variable (from left to right).
ignoreUnresolvedVariable
- specify how to handle unresolvable variables
JavaModelException
- in one of the corresponding situation:
ignoreUnresolvedVariable
was set to false
. IClasspathEntry
public boolean hasBuildState()
public boolean hasClasspathCycle(IClasspathEntry[] entries)
entries
- the given classpath entries
public boolean isOnClasspath(IJavaElement element) throws JavaModelException
element
- the given element
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourcepublic IEvaluationContext newEvaluationContext()
public ITypeHierarchy newTypeHierarchy(IRegion region, IProgressMonitor monitor) throws JavaModelException
monitor
- the given progress monitorregion
- the given region
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resource
IllegalArgumentException
- if region is null
public ITypeHierarchy newTypeHierarchy(IType type, IRegion region, IProgressMonitor monitor) throws JavaModelException
monitor
- the given monitorregion
- the given regiontype
- the given type
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resource
IllegalArgumentException
- if type or region is null
public void setOutputLocation(IPath path, IProgressMonitor monitor) throws JavaModelException
path
- the given absolute pathmonitor
- the given progress monitor
JavaModelException
- if the classpath could not be set. Reasons include:
PATH_OUTSIDE_PROJECT
)
RELATIVE_PATH
)
INVALID_PATH
)
public void setRawClasspath(IClasspathEntry[] entries, IProgressMonitor monitor) throws JavaModelException
JavaCore#getClasspathVariable
),
or the full classpath can be resolved at once using the helper method getResolvedClasspath
.
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[] entries)
before setting the classpath.
entries
- a list of classpath entriesmonitor
- the given progress monitor
JavaModelException
- if the classpath could not be set. Reasons include:
JavaConventions#validateClasspath
IClasspathEntry
public void setRawClasspath(IClasspathEntry[] entries, IPath outputLocation, IProgressMonitor monitor) throws JavaModelException
JavaCore#getClasspathVariable
),
or the full classpath can be resolved at once using the helper method getResolvedClasspath
.
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[] entries)
before setting the classpath.
entries
- a list of classpath entriesmonitor
- the given progress monitoroutputLocation
- the given output location
JavaModelException
- if the classpath could not be set. Reasons include:
CPE_PROJECT
refers to this project (INVALID_PATH)
PATH_OUTSIDE_PROJECT
)
RELATIVE_PATH
)
INVALID_PATH
)
IClasspathEntry
|
Eclipse JDT 2.0 |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |