|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.eclipse.core.runtime.PlatformObject
org.eclipse.jdt.internal.core.JavaElement
org.eclipse.jdt.internal.core.Openable
org.eclipse.jdt.internal.core.JavaProject
public class JavaProject
Handle for a Java Project.
A Java Project internally maintains a devpath that corresponds to the project's classpath. The classpath may include source folders from the current project; jars in the current project, other projects, and the local file system; and binary folders (output location) of other projects. The Java Model presents source elements corresponding to output .class files in other projects, and thus uses the devpath rather than the classpath (which is really a compilation path). The devpath mimics the classpath, except has source folder entries in place of output locations in external projects.
Each JavaProject has a NameLookup facility that locates elements on by name, based on the devpath.
IJavaProject
Field Summary | |
---|---|
static java.lang.String |
CLASSPATH_FILENAME
Name of file containing project classpath |
static java.lang.String |
DEFAULT_PREFERENCES_DIRNAME
Name of directory containing preferences file |
static IClasspathEntry[] |
INVALID_CLASSPATH
Value of the project's raw classpath if the .classpath file contains invalid entries. |
static java.lang.String |
JAVA_CORE_PREFS_FILE
Extension for file containing custom project preferences |
Fields inherited from class org.eclipse.jdt.internal.core.JavaElement |
---|
JEM_ANNOTATION, JEM_CLASSFILE, JEM_COMPILATIONUNIT, JEM_COUNT, JEM_ESCAPE, JEM_FIELD, JEM_IMPORTDECLARATION, JEM_INITIALIZER, JEM_JAVAPROJECT, JEM_LOCALVARIABLE, JEM_METHOD, JEM_PACKAGEDECLARATION, JEM_PACKAGEFRAGMENT, JEM_PACKAGEFRAGMENTROOT, JEM_TYPE, JEM_TYPE_PARAMETER |
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 |
Fields inherited from interface org.eclipse.jdt.internal.compiler.util.SuffixConstants |
---|
EXTENSION_class, EXTENSION_CLASS, EXTENSION_java, EXTENSION_JAVA, SUFFIX_class, SUFFIX_CLASS, SUFFIX_java, SUFFIX_JAVA, SUFFIX_STRING_class, SUFFIX_STRING_CLASS, SUFFIX_STRING_java, SUFFIX_STRING_JAVA |
Constructor Summary | |
---|---|
JavaProject()
Constructor needed for IProject.getNature() and IProject.addNature() . |
|
JavaProject(IProject project,
JavaElement parent)
|
Method Summary | |
---|---|
static boolean |
areClasspathsEqual(IClasspathEntry[] firstClasspath,
IClasspathEntry[] secondClasspath,
org.eclipse.core.runtime.IPath firstOutputLocation,
org.eclipse.core.runtime.IPath secondOutputLocation)
|
static org.eclipse.core.runtime.IPath |
canonicalizedPath(org.eclipse.core.runtime.IPath externalPath)
Returns a canonicalized path from the given external path. |
IPackageFragmentRoot[] |
computePackageFragmentRoots(IClasspathEntry resolvedEntry)
Computes the package fragment roots identified by the given entry. |
IPackageFragmentRoot[] |
computePackageFragmentRoots(IClasspathEntry[] resolvedClasspath,
boolean retrieveExportedRoots,
java.util.Map rootToResolvedEntries)
Returns (local/all) the package fragment roots identified by the given project's classpath. |
void |
computePackageFragmentRoots(IClasspathEntry[] resolvedClasspath,
ObjectVector accumulatedRoots,
java.util.HashSet rootIDs,
IClasspathEntry referringEntry,
boolean retrieveExportedRoots,
java.util.Map rootToResolvedEntries)
Returns (local/all) the package fragment roots identified by the given project's classpath. |
void |
computePackageFragmentRoots(IClasspathEntry resolvedEntry,
ObjectVector accumulatedRoots,
java.util.HashSet rootIDs,
IClasspathEntry referringEntry,
boolean retrieveExportedRoots,
java.util.Map rootToResolvedEntries)
Returns the package fragment roots identified by the given entry. |
java.lang.String |
computeSharedPropertyFileName(org.eclipse.core.runtime.QualifiedName qName)
Compute the file name to use for a given shared property |
void |
configure()
Configure the project with Java nature. |
boolean |
contains(IResource resource)
|
void |
createClasspathProblemMarker(IJavaModelStatus status)
Record a new marker denoting a classpath problem |
IClasspathEntry[] |
decodeClasspath(java.lang.String xmlClasspath,
java.util.Map unknownElements)
|
IClasspathEntry |
decodeClasspathEntry(java.lang.String encodedEntry)
Decodes the classpath entry that has been encoded in the given string in the context of this project. |
void |
deconfigure()
/** Removes the Java nature from the project. |
java.lang.String |
encodeClasspathEntry(IClasspathEntry classpathEntry)
Encodes the given classpath entry into a string in the context of this project. |
boolean |
equals(java.lang.Object o)
Returns true if this handle represents the same Java project as the given handle. |
IJavaElement |
findElement(org.eclipse.core.runtime.IPath path)
Returns the IJavaElement corresponding to the given
classpath-relative path, or null if no such
IJavaElement is found. |
IJavaElement |
findElement(org.eclipse.core.runtime.IPath path,
WorkingCopyOwner owner)
Returns the IJavaElement corresponding to the given
classpath-relative path, or null if no such
IJavaElement is found. |
IJavaElement |
findElement(java.lang.String bindingKey,
WorkingCopyOwner owner)
Finds the Java element corresponding to the given binding key if any, else returns null . |
IPackageFragment |
findPackageFragment(org.eclipse.core.runtime.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. |
IJavaElement |
findPackageFragment(java.lang.String packageName)
|
IPackageFragmentRoot |
findPackageFragmentRoot(org.eclipse.core.runtime.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 |
findPackageFragmentRoot0(org.eclipse.core.runtime.IPath path)
|
IPackageFragmentRoot[] |
findPackageFragmentRoots(IClasspathEntry entry)
Returns the existing package fragment roots identified by the given entry. |
IType |
findType(java.lang.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(java.lang.String fullyQualifiedName,
org.eclipse.core.runtime.IProgressMonitor progressMonitor)
Same functionality as IJavaProject.findType(String) but also look for secondary
types if given name does not match a compilation unit name. |
IType |
findType(java.lang.String packageName,
java.lang.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(java.lang.String packageName,
java.lang.String typeQualifiedName,
org.eclipse.core.runtime.IProgressMonitor progressMonitor)
Same functionality as IJavaProject.findType(String, String) but also look for
secondary types if given name does not match a compilation unit name. |
IType |
findType(java.lang.String packageName,
java.lang.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(java.lang.String packageName,
java.lang.String typeQualifiedName,
WorkingCopyOwner owner,
org.eclipse.core.runtime.IProgressMonitor progressMonitor)
Same functionality as IJavaProject.findType(String, String, WorkingCopyOwner)
but also look for secondary types if given name does not match a compilation unit name. |
IType |
findType(java.lang.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(java.lang.String fullyQualifiedName,
WorkingCopyOwner owner,
org.eclipse.core.runtime.IProgressMonitor progressMonitor)
Same functionality as IJavaProject.findType(String, WorkingCopyOwner)
but also look for secondary types if given name does not match
a compilation unit name. |
org.eclipse.core.runtime.IPath[] |
getAccessRestrictions(java.lang.String optionName)
Returns the set of patterns corresponding to this project visibility given rules |
IPackageFragmentRoot[] |
getAllPackageFragmentRoots()
Returns all of the existing package fragment roots that exist on the classpath, in the order they are defined by the classpath. |
IPackageFragmentRoot[] |
getAllPackageFragmentRoots(java.util.Map rootToResolvedEntries)
|
IClasspathEntry |
getClasspathEntryFor(org.eclipse.core.runtime.IPath path)
Returns the classpath entry that refers to the given path or null if there is no reference to the path. |
IMarker |
getCycleMarker()
|
org.eclipse.core.runtime.preferences.IEclipsePreferences |
getEclipsePreferences()
Returns the project custom preference pool. |
java.lang.String |
getElementName()
Returns the name of this element. |
int |
getElementType()
Returns this element's kind encoded as an integer. |
IClasspathEntry[] |
getExpandedClasspath()
This is a helper method returning the expanded 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. |
IPackageFragmentRoot |
getFolderPackageFragmentRoot(org.eclipse.core.runtime.IPath path)
The path is known to match a source/library folder entry. |
IJavaElement |
getHandleFromMemento(java.lang.String token,
MementoTokenizer memento,
WorkingCopyOwner owner)
|
java.lang.Object[] |
getNonJavaResources()
Returns an array of non-java resources contained in the receiver. |
java.lang.String |
getOption(java.lang.String optionName,
boolean inheritJavaCoreOptions)
Helper method for returning one option value only. |
java.util.Map |
getOptions(boolean inheritJavaCoreOptions)
Returns the table of the current custom options for this project. |
org.eclipse.core.runtime.IPath |
getOutputLocation()
Returns the default output location for this project as a workspace- relative absolute path. |
IPackageFragmentRoot |
getPackageFragmentRoot(org.eclipse.core.runtime.IPath 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. |
IPackageFragmentRoot |
getPackageFragmentRoot(java.lang.String externalLibraryPath)
Returns a package fragment root for an external library (a ZIP archive - e.g. |
IPackageFragmentRoot |
getPackageFragmentRoot0(org.eclipse.core.runtime.IPath externalLibraryPath)
|
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. |
IPackageFragment[] |
getPackageFragments()
Returns all package fragments in all package fragment roots contained in this project. |
IPackageFragment[] |
getPackageFragmentsInRoots(IPackageFragmentRoot[] roots)
Returns all the package fragments found in the specified package fragment roots. |
org.eclipse.core.runtime.IPath |
getPath()
Returns the path to the innermost resource enclosing this element. |
JavaModelManager.PerProjectInfo |
getPerProjectInfo()
|
org.eclipse.core.runtime.Preferences |
getPreferences()
Deprecated. WARNING: this method do nothing from now and will be removed soon! If you use it, switch as soon as possible to new preferences API by using getEclipsePreferences() to avoid future compilation error... |
IProject |
getProject()
Returns the IProject on which this IJavaProject
was created. |
org.eclipse.jdt.internal.core.JavaProjectElementInfo.ProjectCache |
getProjectCache()
|
IClasspathEntry[] |
getRawClasspath()
Returns the raw classpath for the project, as a list of classpath entries. |
java.lang.String[] |
getRequiredProjectNames()
Returns the names of the projects that are directly required by this project. |
IClasspathEntry[] |
getResolvedClasspath()
|
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. |
java.lang.String |
getSharedProperty(java.lang.String key)
Retrieve a shared property on a project. |
SourceMapper |
getSourceMapper()
Returns the SourceMapper facility for this element, or null if this element does not have a
SourceMapper. |
IResource |
getUnderlyingResource()
Returns the smallest underlying resource that contains this element, or null if this element is not contained
in a resource. |
boolean |
hasBuildState()
Returns whether this project has been built at least once and thus whether it has a build state. |
boolean |
hasClasspathCycle(IClasspathEntry[] preferredClasspath)
Returns whether setting this project's classpath to the given classpath entries would result in a cycle. |
boolean |
hasCycleMarker()
|
int |
hashCode()
Returns the hash code for this Java element. |
static boolean |
hasJavaNature(IProject project)
Returns true if the given project is accessible and it has a java nature, otherwise false. |
boolean |
hasSource()
Answers true if the project potentially contains any source. |
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. |
NameLookup |
newNameLookup(ICompilationUnit[] workingCopies)
|
NameLookup |
newNameLookup(WorkingCopyOwner owner)
|
SearchableEnvironment |
newSearchableNameEnvironment(ICompilationUnit[] workingCopies)
|
SearchableEnvironment |
newSearchableNameEnvironment(WorkingCopyOwner owner)
|
ITypeHierarchy |
newTypeHierarchy(IRegion region,
org.eclipse.core.runtime.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,
org.eclipse.core.runtime.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,
org.eclipse.core.runtime.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,
org.eclipse.core.runtime.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. |
java.lang.String[] |
projectPrerequisites(IClasspathEntry[] entries)
|
IClasspathEntry[] |
readFileEntriesWithException(java.util.Map unknownElements)
|
org.eclipse.core.runtime.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 |
resetCaches()
|
IClasspathEntry[] |
resolveClasspath(IClasspathEntry[] rawClasspath)
|
void |
resolveClasspath(JavaModelManager.PerProjectInfo perProjectInfo)
|
IResource |
resource(PackageFragmentRoot root)
|
java.lang.String |
rootID()
Answers an ID which is used to distinguish project/entries during package fragment root computations |
void |
setOption(java.lang.String optionName,
java.lang.String optionValue)
Helper method for setting one option value only. |
void |
setOptions(java.util.Map newOptions)
Sets the project custom options. |
void |
setOutputLocation(org.eclipse.core.runtime.IPath path,
org.eclipse.core.runtime.IProgressMonitor monitor)
Sets the default output location of this project to the location described by the given workspace-relative absolute path. |
void |
setProject(IProject project)
Sets the underlying kernel project of this Java project, and fills in its parent and name. |
void |
setRawClasspath(IClasspathEntry[] entries,
boolean canModifyResources,
org.eclipse.core.runtime.IProgressMonitor monitor)
Sets the classpath of this project using a list of classpath entries. |
void |
setRawClasspath(IClasspathEntry[] newRawClasspath,
org.eclipse.core.runtime.IPath newOutputLocation,
boolean canModifyResources,
org.eclipse.core.runtime.IProgressMonitor monitor)
Sets both the classpath of this project and its default output location at once. |
void |
setRawClasspath(IClasspathEntry[] entries,
org.eclipse.core.runtime.IPath outputLocation,
org.eclipse.core.runtime.IProgressMonitor monitor)
Sets the both the classpath of this project and its default output location at once. |
void |
setRawClasspath(IClasspathEntry[] entries,
org.eclipse.core.runtime.IProgressMonitor monitor)
Sets the classpath of this project using a list of classpath entries. |
void |
setSharedProperty(java.lang.String key,
java.lang.String value)
Record a shared persistent property onto a project. |
void |
updateCycleParticipants(java.util.ArrayList prereqChain,
java.util.HashSet cycleParticipants,
IWorkspaceRoot workspaceRoot,
java.util.HashSet traversed,
java.util.Map preferredClasspaths)
If a cycle is detected, then cycleParticipants contains all the paths of projects involved in this cycle (directly and indirectly), no cycle if the set is empty (and started empty) |
static void |
validateCycles(java.util.Map preferredClasspaths)
|
boolean |
writeFileEntries(IClasspathEntry[] newClasspath,
org.eclipse.core.runtime.IPath newOutputLocation)
Writes the classpath in a sharable format (VCM-wise) only when necessary, that is, if it is semantically different from the existing one in file. |
Methods inherited from class org.eclipse.jdt.internal.core.Openable |
---|
bufferChanged, canBeRemovedFromCache, canBufferBeRemovedFromCache, exists, findRecommendedLineSeparator, getBuffer, getBufferFactory, getCorrespondingResource, getOpenable, getPackageFragmentRoot, getResource, hasUnsavedChanges, isConsistent, isOpen, isStructureKnown, makeConsistent, open, resource, save |
Methods inherited from class org.eclipse.jdt.internal.core.JavaElement |
---|
close, findNode, getAncestor, getAttachedJavadoc, getChildren, getChildrenOfType, getClassFile, getCompilationUnit, getElementInfo, getElementInfo, getHandleFromMemento, getHandleIdentifier, getHandleMemento, getJavaModel, getJavaProject, getOpenableParent, getParent, getPrimaryElement, getPrimaryElement, getSchedulingRule, hasChildren, isAncestorOf, isReadOnly, newJavaModelException, newNotPresentException, readableName, resolved, toDebugString, toString, toStringInfo, toStringWithAncestors, toStringWithAncestors, unresolved |
Methods inherited from class org.eclipse.core.runtime.PlatformObject |
---|
getAdapter |
Methods inherited from class java.lang.Object |
---|
getClass, notify, notifyAll, wait, wait, wait |
Methods inherited from interface org.eclipse.jdt.core.IParent |
---|
getChildren, hasChildren |
Methods inherited from interface org.eclipse.jdt.core.IJavaElement |
---|
exists, getAncestor, getAttachedJavadoc, getCorrespondingResource, getHandleIdentifier, getJavaModel, getJavaProject, getOpenable, getParent, getPrimaryElement, getResource, getSchedulingRule, 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 |
---|
public static final java.lang.String CLASSPATH_FILENAME
public static final IClasspathEntry[] INVALID_CLASSPATH
public static final java.lang.String DEFAULT_PREFERENCES_DIRNAME
public static final java.lang.String JAVA_CORE_PREFS_FILE
Constructor Detail |
---|
public JavaProject()
IProject.getNature()
and IProject.addNature()
.
setProject(IProject)
public JavaProject(IProject project, JavaElement parent)
Method Detail |
---|
public static boolean areClasspathsEqual(IClasspathEntry[] firstClasspath, IClasspathEntry[] secondClasspath, org.eclipse.core.runtime.IPath firstOutputLocation, org.eclipse.core.runtime.IPath secondOutputLocation)
public static org.eclipse.core.runtime.IPath canonicalizedPath(org.eclipse.core.runtime.IPath externalPath)
externalPath
- IPath
for the definition of a canonicalized path
public static boolean hasJavaNature(IProject project)
project
- IProject
public static void validateCycles(java.util.Map preferredClasspaths) throws JavaModelException
JavaModelException
public IPackageFragmentRoot[] computePackageFragmentRoots(IClasspathEntry resolvedEntry)
resolvedEntry
- IClasspathEntry
public void computePackageFragmentRoots(IClasspathEntry resolvedEntry, ObjectVector accumulatedRoots, java.util.HashSet rootIDs, IClasspathEntry referringEntry, boolean retrieveExportedRoots, java.util.Map rootToResolvedEntries) throws JavaModelException
resolvedEntry
- IClasspathEntryaccumulatedRoots
- ObjectVectorrootIDs
- HashSetreferringEntry
- the CP entry (project) referring to this entry, or null if initial projectretrieveExportedRoots
- boolean
JavaModelException
public IPackageFragmentRoot[] computePackageFragmentRoots(IClasspathEntry[] resolvedClasspath, boolean retrieveExportedRoots, java.util.Map rootToResolvedEntries) throws JavaModelException
resolvedClasspath
- IClasspathEntry[]retrieveExportedRoots
- boolean
JavaModelException
public void computePackageFragmentRoots(IClasspathEntry[] resolvedClasspath, ObjectVector accumulatedRoots, java.util.HashSet rootIDs, IClasspathEntry referringEntry, boolean retrieveExportedRoots, java.util.Map rootToResolvedEntries) throws JavaModelException
resolvedClasspath
- IClasspathEntry[]accumulatedRoots
- ObjectVectorrootIDs
- HashSetreferringEntry
- project entry referring to this CP or null if initial projectretrieveExportedRoots
- boolean
JavaModelException
public java.lang.String computeSharedPropertyFileName(org.eclipse.core.runtime.QualifiedName qName)
qName
- QualifiedName
public void configure() throws org.eclipse.core.runtime.CoreException
configure
in interface IProjectNature
org.eclipse.core.runtime.CoreException
- if this method fails.public boolean contains(IResource resource)
public void createClasspathProblemMarker(IJavaModelStatus status)
public IClasspathEntry[] decodeClasspath(java.lang.String xmlClasspath, java.util.Map unknownElements) throws java.io.IOException, org.eclipse.core.runtime.AssertionFailedException
java.io.IOException
org.eclipse.core.runtime.AssertionFailedException
public IClasspathEntry decodeClasspathEntry(java.lang.String encodedEntry)
IJavaProject
decodeClasspathEntry
in interface IJavaProject
encodedEntry
- the encoded classpath entry
null
if unable to decode itpublic void deconfigure() throws org.eclipse.core.runtime.CoreException
deconfigure
in interface IProjectNature
org.eclipse.core.runtime.CoreException
- if this method fails.public java.lang.String encodeClasspathEntry(IClasspathEntry classpathEntry)
IJavaProject
encodeClasspathEntry
in interface IJavaProject
classpathEntry
- the classpath entry to encode
public boolean equals(java.lang.Object o)
equals
in class JavaElement
JavaElement.equals(Object)
public IJavaElement findElement(org.eclipse.core.runtime.IPath path) throws JavaModelException
IJavaProject
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".
findElement
in interface IJavaProject
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 absoluteIJavaProject.findElement(IPath)
public IJavaElement findElement(org.eclipse.core.runtime.IPath path, WorkingCopyOwner owner) throws JavaModelException
IJavaProject
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".
findElement
in interface IJavaProject
path
- the given classpath-relative pathowner
- the owner of the returned compilation unit, ignored if it is
not a compilation unit.
IJavaElement
corresponding to the given
classpath-relative path, or null
if no such
IJavaElement
is found
JavaModelException
- if the given path is null
or absoluteIJavaProject.findElement(IPath, WorkingCopyOwner)
public IJavaElement findPackageFragment(java.lang.String packageName) throws JavaModelException
JavaModelException
public IJavaElement findElement(java.lang.String bindingKey, WorkingCopyOwner owner) throws JavaModelException
IJavaProject
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:
IPackageFragment
for a binding key from an
IPackageBinding
IType
for a binding key from an ITypeBinding
IMethod
for a binding key from an IMethodBinding
IField
for a binding key from an IVariableBinding
representing a field
ITypeParameter
for a binding key from an ITypeBinding
representing a type
variable
IAnnotation
for a binding key from an
IAnnotationBinding
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.
findElement
in interface IJavaProject
bindingKey
- the given binding keyowner
- the owner of the returned element's compilation unit,
or null
if the default working copy owner must be
used
null
if no such Java element is found
JavaModelException
- if this project does not exist or if an
exception occurs while accessing its corresponding resourcepublic IPackageFragment findPackageFragment(org.eclipse.core.runtime.IPath path) throws JavaModelException
IJavaProject
null
if none
exist.
The path can be:
- internal to the workbench: "/Project/src"
- external to the workbench: "c:/jdk/classes.zip/java/lang"
findPackageFragment
in interface IJavaProject
path
- the given absolute path
null
if none
exist
JavaModelException
- if this project does not exist or if an
exception occurs while accessing its corresponding resourceIJavaProject
public IPackageFragmentRoot findPackageFragmentRoot(org.eclipse.core.runtime.IPath path) throws JavaModelException
IJavaProject
null
if
one does not exist.
The path can be:
- internal to the workbench: "/Compiler/src"
- external to the workbench: "c:/jdk/classes.zip"
findPackageFragmentRoot
in interface IJavaProject
path
- the given absolute path
null
if
one does not exist
JavaModelException
- if this project does not exist or if an
exception occurs while accessing its corresponding resourceIJavaProject
public IPackageFragmentRoot findPackageFragmentRoot0(org.eclipse.core.runtime.IPath path) throws JavaModelException
JavaModelException
public IPackageFragmentRoot[] findPackageFragmentRoots(IClasspathEntry entry)
IJavaProject
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).
findPackageFragmentRoots
in interface IJavaProject
entry
- the given entry
IJavaProject
public IType findType(java.lang.String fullyQualifiedName) throws JavaModelException
IJavaProject
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 IJavaProject.findType(String, IProgressMonitor)
instead.
findType
in interface IJavaProject
fullyQualifiedName
- the given fully qualified name
null
if none is found
JavaModelException
- if this project does not exist or if an
exception occurs while accessing its corresponding resourceIJavaProject.findType(String)
public IType findType(java.lang.String fullyQualifiedName, org.eclipse.core.runtime.IProgressMonitor progressMonitor) throws JavaModelException
IJavaProject
IJavaProject.findType(String)
but also look for secondary
types if given name does not match a compilation unit name.
findType
in interface IJavaProject
fullyQualifiedName
- the given fully qualified nameprogressMonitor
- the progress monitor to report progress to,
or null
if no progress monitor is provided
null
if none is found
JavaModelException
- if this project does not exist or if an
exception occurs while accessing its corresponding resourceIJavaProject.findType(String, IProgressMonitor)
public IType findType(java.lang.String packageName, java.lang.String typeQualifiedName) throws JavaModelException
IJavaProject
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 IJavaProject.findType(String, String, IProgressMonitor)
instead.
findType
in interface IJavaProject
packageName
- the given package nametypeQualifiedName
- the given type qualified name
null
if none is found
JavaModelException
- if this project does not exist or if an
exception occurs while accessing its corresponding resourceIJavaProject.findType(String, String)
public IType findType(java.lang.String packageName, java.lang.String typeQualifiedName, org.eclipse.core.runtime.IProgressMonitor progressMonitor) throws JavaModelException
IJavaProject
IJavaProject.findType(String, String)
but also look for
secondary types if given name does not match a compilation unit name.
findType
in interface IJavaProject
packageName
- the given package nametypeQualifiedName
- the given type qualified nameprogressMonitor
- the progress monitor to report progress to,
or null
if no progress monitor is provided
null
if none is found
JavaModelException
- if this project does not exist or if an
exception occurs while accessing its corresponding resourceIJavaProject.findType(String, String, IProgressMonitor)
public IType findType(java.lang.String packageName, java.lang.String typeQualifiedName, WorkingCopyOwner owner) throws JavaModelException
IJavaProject
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 IJavaProject.findType(String, String, WorkingCopyOwner, IProgressMonitor)
instead.
findType
in interface IJavaProject
packageName
- the given package nametypeQualifiedName
- the given type qualified nameowner
- the owner of the returned type's compilation unit
null
if none is found
JavaModelException
- if this project does not exist or if an
exception occurs while accessing its corresponding resourceIJavaProject.findType(String, String, WorkingCopyOwner)
public IType findType(java.lang.String packageName, java.lang.String typeQualifiedName, WorkingCopyOwner owner, org.eclipse.core.runtime.IProgressMonitor progressMonitor) throws JavaModelException
IJavaProject
IJavaProject.findType(String, String, WorkingCopyOwner)
but also look for secondary types if given name does not match a compilation unit name.
findType
in interface IJavaProject
packageName
- the given package nametypeQualifiedName
- the given type qualified nameowner
- the owner of the returned type's compilation unitprogressMonitor
- the progress monitor to report progress to,
or null
if no progress monitor is provided
null
if none is found
JavaModelException
- if this project does not exist or if an
exception occurs while accessing its corresponding resourceIJavaProject.findType(String, String, WorkingCopyOwner, IProgressMonitor)
public IType findType(java.lang.String fullyQualifiedName, WorkingCopyOwner owner) throws JavaModelException
IJavaProject
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 IJavaProject.findType(String, WorkingCopyOwner, IProgressMonitor)
instead.
findType
in interface IJavaProject
fullyQualifiedName
- the given fully qualified nameowner
- the owner of the returned type's compilation unit
null
if none is found
JavaModelException
- if this project does not exist or if an
exception occurs while accessing its corresponding resourceIJavaProject.findType(String, WorkingCopyOwner)
public IType findType(java.lang.String fullyQualifiedName, WorkingCopyOwner owner, org.eclipse.core.runtime.IProgressMonitor progressMonitor) throws JavaModelException
IJavaProject
IJavaProject.findType(String, WorkingCopyOwner)
but also look for secondary types if given name does not match
a compilation unit name.
findType
in interface IJavaProject
fullyQualifiedName
- the given fully qualified nameowner
- the owner of the returned type's compilation unitprogressMonitor
- the progress monitor to report progress to,
or null
if no progress monitor is provided
null
if none is found
JavaModelException
- if this project does not exist or if an
exception occurs while accessing its corresponding resourceIJavaProject.findType(String, WorkingCopyOwner, IProgressMonitor)
public org.eclipse.core.runtime.IPath[] getAccessRestrictions(java.lang.String optionName)
public IPackageFragmentRoot[] getAllPackageFragmentRoots() throws JavaModelException
IJavaProject
getAllPackageFragmentRoots
in interface IJavaProject
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourceIJavaProject
public IPackageFragmentRoot[] getAllPackageFragmentRoots(java.util.Map rootToResolvedEntries) throws JavaModelException
JavaModelException
public IClasspathEntry getClasspathEntryFor(org.eclipse.core.runtime.IPath path) throws JavaModelException
null
if there is no reference to the path.
path
- IPath
JavaModelException
public IMarker getCycleMarker()
public org.eclipse.core.runtime.preferences.IEclipsePreferences getEclipsePreferences()
null
if the project
does not have a java nature.public java.lang.String getElementName()
IJavaElement
getElementName
in interface IJavaElement
getElementName
in class JavaElement
IAdaptable
public int getElementType()
IJavaElement
getElementType
in interface IJavaElement
IJavaElement
IJavaElement
public IClasspathEntry[] getExpandedClasspath() throws JavaModelException
JavaModelException
public IPackageFragmentRoot getFolderPackageFragmentRoot(org.eclipse.core.runtime.IPath path)
path
- IPath
public IJavaElement getHandleFromMemento(java.lang.String token, MementoTokenizer memento, WorkingCopyOwner owner)
getHandleFromMemento
in class JavaElement
public java.lang.Object[] getNonJavaResources() throws JavaModelException
getNonJavaResources
in interface IJavaProject
IFile
s and/or
IFolder
s) directly contained in this project
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourcepublic java.lang.String getOption(java.lang.String optionName, boolean inheritJavaCoreOptions)
IJavaProject
(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
.
getOption
in interface IJavaProject
optionName
- the name of an optioninheritJavaCoreOptions
- - boolean indicating whether JavaCore options should be inherited as well
IJavaProject.getOption(String, boolean)
public java.util.Map getOptions(boolean inheritJavaCoreOptions)
IJavaProject
JavaCore
.
For a complete description of the configurable options, see JavaCore#getDefaultOptions
.
getOptions
in interface IJavaProject
inheritJavaCoreOptions
- - boolean indicating whether JavaCore options should be inherited as well
String
; value type: String
)IJavaProject.getOptions(boolean)
public org.eclipse.core.runtime.IPath getOutputLocation() throws JavaModelException
IJavaProject
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).
getOutputLocation
in interface IJavaProject
JavaModelException
- if this element does not existIJavaProject
public IPackageFragmentRoot getPackageFragmentRoot(org.eclipse.core.runtime.IPath path)
path
- IPath
null
if unable to generate a handle from the path (for example,
an absolute path that has less than 1 segment. The path may be relative or
absolute.public IPackageFragmentRoot getPackageFragmentRoot(IResource resource)
IJavaProject
.jar
, a .zip
file, etc.)
This is a handle-only method. The underlying resource may or may not exist.
getPackageFragmentRoot
in interface IJavaProject
resource
- the given resource
.jar
, a .zip
file, etc.)IJavaProject
public IPackageFragmentRoot getPackageFragmentRoot(java.lang.String externalLibraryPath)
IJavaProject
.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.
getPackageFragmentRoot
in interface IJavaProject
externalLibraryPath
- the library's file system path
IJavaProject
public IPackageFragmentRoot getPackageFragmentRoot0(org.eclipse.core.runtime.IPath externalLibraryPath)
public IPackageFragmentRoot[] getPackageFragmentRoots() throws JavaModelException
IJavaProject
NOTE: This is equivalent to getChildren()
.
getPackageFragmentRoots
in interface IJavaProject
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourceIJavaProject
public IPackageFragmentRoot[] getPackageFragmentRoots(IClasspathEntry entry)
IJavaProject
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).
getPackageFragmentRoots
in interface IJavaProject
entry
- the given entry
IJavaProject
public IPackageFragment[] getPackageFragments() throws JavaModelException
IJavaProject
getPackageFragments
in interface IJavaProject
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourceIJavaProject
public IPackageFragment[] getPackageFragmentsInRoots(IPackageFragmentRoot[] roots)
roots
- IPackageFragmentRoot[]
public org.eclipse.core.runtime.IPath getPath()
IJavaElement
getPath
in interface IJavaElement
IJavaElement
public JavaModelManager.PerProjectInfo getPerProjectInfo() throws JavaModelException
JavaModelException
public org.eclipse.core.runtime.Preferences getPreferences()
getEclipsePreferences()
to avoid future compilation error...
public IProject getProject()
IJavaProject
IProject
on which this IJavaProject
was created. This is handle-only method.
getProject
in interface IProjectNature
getProject
in interface IJavaProject
IProject
on which this IJavaProject
was createdIJavaProject.getProject()
public org.eclipse.jdt.internal.core.JavaProjectElementInfo.ProjectCache getProjectCache() throws JavaModelException
JavaModelException
public IClasspathEntry[] getRawClasspath() throws JavaModelException
IJavaProject
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.
getRawClasspath
in interface IJavaProject
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourceIJavaProject
public java.lang.String[] getRequiredProjectNames() throws JavaModelException
IJavaProject
The project names are returned in the order they appear on the classpath.
getRequiredProjectNames
in interface IJavaProject
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourceIJavaProject.getRequiredProjectNames()
public IClasspathEntry[] getResolvedClasspath() throws JavaModelException
JavaModelException
public IClasspathEntry[] getResolvedClasspath(boolean ignoreUnresolvedEntry) throws JavaModelException
IJavaProject
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.
getResolvedClasspath
in interface IJavaProject
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
JavaModelException
- in one of the corresponding situation:
ignoreUnresolvedEntry
is false
.IJavaProject
public IResource resource(PackageFragmentRoot root)
IJavaElement
public java.lang.String getSharedProperty(java.lang.String key) throws org.eclipse.core.runtime.CoreException
key
- String
org.eclipse.core.runtime.CoreException
setSharedProperty(String, String)
public SourceMapper getSourceMapper()
JavaElement
null
if this element does not have a
SourceMapper.
getSourceMapper
in class JavaElement
JavaElement
public IResource getUnderlyingResource() throws JavaModelException
IJavaElement
null
if this element is not contained
in a resource.
getUnderlyingResource
in interface IJavaElement
getUnderlyingResource
in class Openable
null
if none
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its underlying resourceIJavaElement
public boolean hasBuildState()
IJavaProject
hasBuildState
in interface IJavaProject
IJavaProject
public boolean hasClasspathCycle(IClasspathEntry[] preferredClasspath)
IJavaProject
hasClasspathCycle
in interface IJavaProject
preferredClasspath
- the given classpath entries
IJavaProject
public boolean hasCycleMarker()
public int hashCode()
JavaElement
hashCode
in class JavaElement
public boolean hasSource()
public boolean isOnClasspath(IJavaElement element)
IJavaProject
isOnClasspath
in interface IJavaProject
element
- the given element
true
if the given element is on the classpath of
this project, false
otherwiseIClasspathEntry.getInclusionPatterns()
,
IClasspathEntry.getExclusionPatterns()
public boolean isOnClasspath(IResource resource)
IJavaProject
isOnClasspath
in interface IJavaProject
resource
- the given resource
true
if the given resource is on the classpath of
this project, false
otherwiseIClasspathEntry.getInclusionPatterns()
,
IClasspathEntry.getExclusionPatterns()
public IEvaluationContext newEvaluationContext()
IJavaProject
newEvaluationContext
in interface IJavaProject
IJavaProject.newEvaluationContext()
public NameLookup newNameLookup(ICompilationUnit[] workingCopies) throws JavaModelException
JavaModelException
public NameLookup newNameLookup(WorkingCopyOwner owner) throws JavaModelException
JavaModelException
public SearchableEnvironment newSearchableNameEnvironment(ICompilationUnit[] workingCopies) throws JavaModelException
JavaModelException
public SearchableEnvironment newSearchableNameEnvironment(WorkingCopyOwner owner) throws JavaModelException
JavaModelException
public ITypeHierarchy newTypeHierarchy(IRegion region, org.eclipse.core.runtime.IProgressMonitor monitor) throws JavaModelException
IJavaProject
newTypeHierarchy
in interface IJavaProject
region
- the given regionmonitor
- the given progress monitor
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourceIJavaProject
public ITypeHierarchy newTypeHierarchy(IRegion region, WorkingCopyOwner owner, org.eclipse.core.runtime.IProgressMonitor monitor) throws JavaModelException
IJavaProject
Note that if a working copy is empty, it will be as if the original compilation unit had been deleted.
newTypeHierarchy
in interface IJavaProject
region
- the given regionowner
- the owner of working copies that take precedence over their original compilation unitsmonitor
- the given progress monitor
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourceIJavaProject
public ITypeHierarchy newTypeHierarchy(IType type, IRegion region, org.eclipse.core.runtime.IProgressMonitor monitor) throws JavaModelException
IJavaProject
newTypeHierarchy
in interface IJavaProject
type
- the given typeregion
- the given regionmonitor
- the given monitor
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourceIJavaProject
public ITypeHierarchy newTypeHierarchy(IType type, IRegion region, WorkingCopyOwner owner, org.eclipse.core.runtime.IProgressMonitor monitor) throws JavaModelException
IJavaProject
Note that if a working copy is empty, it will be as if the original compilation unit had been deleted.
newTypeHierarchy
in interface IJavaProject
type
- the given typeregion
- the given regionowner
- the owner of working copies that take precedence over their original compilation unitsmonitor
- the given monitor
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resourceIJavaProject
public java.lang.String[] projectPrerequisites(IClasspathEntry[] entries) throws JavaModelException
JavaModelException
public IClasspathEntry[] readFileEntriesWithException(java.util.Map unknownElements) throws org.eclipse.core.runtime.CoreException, java.io.IOException, org.eclipse.core.runtime.AssertionFailedException
org.eclipse.core.runtime.CoreException
java.io.IOException
org.eclipse.core.runtime.AssertionFailedException
public org.eclipse.core.runtime.IPath readOutputLocation()
IJavaProject
.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
).
readOutputLocation
in interface IJavaProject
IJavaProject
public IClasspathEntry[] readRawClasspath()
IJavaProject
.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
).
readRawClasspath
in interface IJavaProject
IJavaProject
public void resetCaches()
public IClasspathEntry[] resolveClasspath(IClasspathEntry[] rawClasspath) throws JavaModelException
JavaModelException
public void resolveClasspath(JavaModelManager.PerProjectInfo perProjectInfo) throws JavaModelException
JavaModelException
public java.lang.String rootID()
public boolean writeFileEntries(IClasspathEntry[] newClasspath, org.eclipse.core.runtime.IPath newOutputLocation) throws JavaModelException
newClasspath
- IClasspathEntry[]newOutputLocation
- IPath
JavaModelException
public void setOption(java.lang.String optionName, java.lang.String optionValue)
IJavaProject
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
.
setOption
in interface IJavaProject
optionName
- the name of an optionoptionValue
- the value of the option to set. If null
, then the option
is removed from project preferences.IJavaProject.setOption(java.lang.String, java.lang.String)
public void setOptions(java.util.Map newOptions)
IJavaProject
For a complete description of the configurable options, see JavaCore#getDefaultOptions
.
setOptions
in interface IJavaProject
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).IJavaProject.setOptions(Map)
public void setOutputLocation(org.eclipse.core.runtime.IPath path, org.eclipse.core.runtime.IProgressMonitor monitor) throws JavaModelException
IJavaProject
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).
setOutputLocation
in interface IJavaProject
path
- the workspace-relative absolute path of the default output
foldermonitor
- the progress monitor
JavaModelException
- if the classpath could not be set. Reasons include:
PATH_OUTSIDE_PROJECT
)
RELATIVE_PATH
)
INVALID_PATH
)
IJavaProject
public void setProject(IProject project)
setProject
in interface IProjectNature
project
- the project to which this nature appliesIProjectNature.setProject(IProject)
public void setRawClasspath(IClasspathEntry[] entries, boolean canModifyResources, org.eclipse.core.runtime.IProgressMonitor monitor) throws JavaModelException
IJavaProject
JavaCore.getClasspathVariable(String)
),
or the full classpath can be resolved at once using the helper method IJavaProject.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 IJavaProject.hasClasspathCycle(IClasspathEntry[])
before setting the classpath.
This operation acquires a lock on the workspace's root.
setRawClasspath
in interface IJavaProject
entries
- a list of classpath entriescanModifyResources
- whether resources should be written to disk if neededmonitor
- the given progress monitor
JavaModelException
- if the classpath could not be set. Reasons include:
JavaConventions.validateClasspath(IJavaProject, IClasspathEntry[], IPath)
IJavaProject.setRawClasspath(IClasspathEntry[],boolean,IProgressMonitor)
public void setRawClasspath(IClasspathEntry[] newRawClasspath, org.eclipse.core.runtime.IPath newOutputLocation, boolean canModifyResources, org.eclipse.core.runtime.IProgressMonitor monitor) throws JavaModelException
IJavaProject
JavaCore.getClasspathVariable(String)
),
or the full classpath can be resolved at once using the helper method IJavaProject.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 IJavaProject.hasClasspathCycle(IClasspathEntry[])
before setting the classpath.
This operation acquires a lock on the workspace's root.
setRawClasspath
in interface IJavaProject
newRawClasspath
- a list of classpath entriesnewOutputLocation
- the default output locationcanModifyResources
- whether resources should be written to disk if neededmonitor
- the given progress monitor
JavaModelException
- if the classpath could not be set. Reasons include:
JavaConventions.validateClasspath(IJavaProject, IClasspathEntry[], IPath)
IJavaProject.setRawClasspath(IClasspathEntry[],IPath,boolean,IProgressMonitor)
public void setRawClasspath(IClasspathEntry[] entries, org.eclipse.core.runtime.IPath outputLocation, org.eclipse.core.runtime.IProgressMonitor monitor) throws JavaModelException
IJavaProject
JavaCore.getClasspathVariable(String)
), or the full classpath can be
resolved at once using the helper method
IJavaProject.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
IJavaProject.hasClasspathCycle(IClasspathEntry[])
before setting
the classpath.
This operation acquires a lock on the workspace's root.
setRawClasspath
in interface IJavaProject
entries
- a list of classpath entriesoutputLocation
- the default output locationmonitor
- the progress monitor
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
)
IJavaProject.setRawClasspath(IClasspathEntry[],IPath,IProgressMonitor)
public void setRawClasspath(IClasspathEntry[] entries, org.eclipse.core.runtime.IProgressMonitor monitor) throws JavaModelException
IJavaProject
JavaCore.getClasspathVariable(String)
),
or the full classpath can be resolved at once using the helper method IJavaProject.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 IJavaProject.hasClasspathCycle(IClasspathEntry[])
before setting the classpath.
This operation acquires a lock on the workspace's root.
setRawClasspath
in interface IJavaProject
entries
- a list of classpath entriesmonitor
- the given progress monitor
JavaModelException
- if the classpath could not be set. Reasons include:
JavaConventions.validateClasspath(IJavaProject, IClasspathEntry[], IPath)
IJavaProject
public void setSharedProperty(java.lang.String key, java.lang.String value) throws org.eclipse.core.runtime.CoreException
key
- Stringvalue
- String
org.eclipse.core.runtime.CoreException
getSharedProperty(String key)
public void updateCycleParticipants(java.util.ArrayList prereqChain, java.util.HashSet cycleParticipants, IWorkspaceRoot workspaceRoot, java.util.HashSet traversed, java.util.Map preferredClasspaths)
prereqChain
- ArrayListcycleParticipants
- HashSetworkspaceRoot
- IWorkspaceRoottraversed
- HashSetpreferredClasspaths
- Map
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |