|
||||||||||
| 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 pathpublic static boolean hasJavaNature(IProject project)
project - IProject
public static void validateCycles(java.util.Map preferredClasspaths)
throws JavaModelException
JavaModelExceptionpublic 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
JavaModelExceptionpublic java.lang.String computeSharedPropertyFileName(org.eclipse.core.runtime.QualifiedName qName)
qName - QualifiedName
public void configure()
throws org.eclipse.core.runtime.CoreException
configure in interface IProjectNatureorg.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.AssertionFailedExceptionpublic IClasspathEntry decodeClasspathEntry(java.lang.String encodedEntry)
IJavaProject
decodeClasspathEntry in interface IJavaProjectencodedEntry - the encoded classpath entry
null if unable to decode it
public void deconfigure()
throws org.eclipse.core.runtime.CoreException
deconfigure in interface IProjectNatureorg.eclipse.core.runtime.CoreException - if this method fails.public java.lang.String encodeClasspathEntry(IClasspathEntry classpathEntry)
IJavaProject
encodeClasspathEntry in interface IJavaProjectclasspathEntry - the classpath entry to encode
public boolean equals(java.lang.Object o)
equals in class JavaElementJavaElement.equals(Object)
public IJavaElement findElement(org.eclipse.core.runtime.IPath path)
throws JavaModelException
IJavaProjectIJavaElement 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 IJavaProjectpath - 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
IJavaProjectIJavaElement 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 IJavaProjectpath - 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
IJavaProjectnull. 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
IPackageBindingIType for a binding key from an ITypeBindingIMethod for a binding key from an IMethodBindingIField for a binding key from an IVariableBinding
representing a fieldITypeParameter for a binding key from an ITypeBinding
representing a type
variableIAnnotation for a binding key from an
IAnnotationBindingNote: 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 IJavaProjectbindingKey - 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 resource
public IPackageFragment findPackageFragment(org.eclipse.core.runtime.IPath path)
throws JavaModelException
IJavaProjectnull 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 IJavaProjectpath - 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
IJavaProjectnull 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 IJavaProjectpath - 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
JavaModelExceptionpublic IPackageFragmentRoot[] findPackageFragmentRoots(IClasspathEntry entry)
IJavaProjectIf 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 IJavaProjectentry - the given entry
IJavaProject
public IType findType(java.lang.String fullyQualifiedName)
throws JavaModelException
IJavaProjectnull 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 IJavaProjectfullyQualifiedName - 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
IJavaProjectIJavaProject.findType(String) but also look for secondary
types if given name does not match a compilation unit name.
findType in interface IJavaProjectfullyQualifiedName - 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
IJavaProjectnull 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 IJavaProjectpackageName - 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
IJavaProjectIJavaProject.findType(String, String) but also look for
secondary types if given name does not match a compilation unit name.
findType in interface IJavaProjectpackageName - 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
IJavaProjectnull 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 IJavaProjectpackageName - 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
IJavaProjectIJavaProject.findType(String, String, WorkingCopyOwner)
but also look for secondary types if given name does not match a compilation unit name.
findType in interface IJavaProjectpackageName - 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
IJavaProjectnull 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 IJavaProjectfullyQualifiedName - 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
IJavaProjectIJavaProject.findType(String, WorkingCopyOwner)
but also look for secondary types if given name does not match
a compilation unit name.
findType in interface IJavaProjectfullyQualifiedName - 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 IJavaProjectJavaModelException - 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
JavaModelExceptionpublic 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 IJavaElementgetElementName in class JavaElementIAdaptablepublic int getElementType()
IJavaElement
getElementType in interface IJavaElementIJavaElementIJavaElement
public IClasspathEntry[] getExpandedClasspath()
throws JavaModelException
JavaModelExceptionpublic 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 IJavaProjectIFiles and/or
IFolders) directly contained in this project
JavaModelException - if this element does not exist or if an
exception occurs while accessing its corresponding resource
public 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 IJavaProjectoptionName - 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)
IJavaProjectJavaCore.
For a complete description of the configurable options, see JavaCore#getDefaultOptions.
getOptions in interface IJavaProjectinheritJavaCoreOptions - - 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
IJavaProjectThe 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 IJavaProjectJavaModelException - if this element does not existIJavaProjectpublic 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 IJavaProjectresource - the given resource
.jar, a .zip file, etc.)IJavaProjectpublic 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 IJavaProjectexternalLibraryPath - the library's file system path
IJavaProjectpublic IPackageFragmentRoot getPackageFragmentRoot0(org.eclipse.core.runtime.IPath externalLibraryPath)
public IPackageFragmentRoot[] getPackageFragmentRoots()
throws JavaModelException
IJavaProjectNOTE: This is equivalent to getChildren().
getPackageFragmentRoots in interface IJavaProjectJavaModelException - if this element does not exist or if an
exception occurs while accessing its corresponding resourceIJavaProjectpublic IPackageFragmentRoot[] getPackageFragmentRoots(IClasspathEntry entry)
IJavaProjectIf 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 IJavaProjectentry - the given entry
IJavaProject
public IPackageFragment[] getPackageFragments()
throws JavaModelException
IJavaProject
getPackageFragments in interface IJavaProjectJavaModelException - if this element does not exist or if an
exception occurs while accessing its corresponding resourceIJavaProjectpublic IPackageFragment[] getPackageFragmentsInRoots(IPackageFragmentRoot[] roots)
roots - IPackageFragmentRoot[]
public org.eclipse.core.runtime.IPath getPath()
IJavaElement
getPath in interface IJavaElementIJavaElement
public JavaModelManager.PerProjectInfo getPerProjectInfo()
throws JavaModelException
JavaModelExceptionpublic org.eclipse.core.runtime.Preferences getPreferences()
getEclipsePreferences() to avoid future compilation error...
public IProject getProject()
IJavaProjectIProject on which this IJavaProject
was created. This is handle-only method.
getProject in interface IProjectNaturegetProject in interface IJavaProjectIProject on which this IJavaProject
was createdIJavaProject.getProject()
public org.eclipse.jdt.internal.core.JavaProjectElementInfo.ProjectCache getProjectCache()
throws JavaModelException
JavaModelException
public IClasspathEntry[] getRawClasspath()
throws JavaModelException
IJavaProjectsetRawClasspath, 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 IJavaProjectJavaModelException - if this element does not exist or if an
exception occurs while accessing its corresponding resourceIJavaProject
public java.lang.String[] getRequiredProjectNames()
throws JavaModelException
IJavaProjectThe project names are returned in the order they appear on the classpath.
getRequiredProjectNames in interface IJavaProjectJavaModelException - 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
IJavaProjectThe 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 IJavaProjectignoreUnresolvedEntry - 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.IJavaProjectpublic 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.CoreExceptionsetSharedProperty(String, String)public SourceMapper getSourceMapper()
JavaElementnull if this element does not have a
SourceMapper.
getSourceMapper in class JavaElementJavaElement
public IResource getUnderlyingResource()
throws JavaModelException
IJavaElementnull if this element is not contained
in a resource.
getUnderlyingResource in interface IJavaElementgetUnderlyingResource in class Openablenull if none
JavaModelException - if this element does not exist or if an
exception occurs while accessing its underlying resourceIJavaElementpublic boolean hasBuildState()
IJavaProject
hasBuildState in interface IJavaProjectIJavaProjectpublic boolean hasClasspathCycle(IClasspathEntry[] preferredClasspath)
IJavaProject
hasClasspathCycle in interface IJavaProjectpreferredClasspath - the given classpath entries
IJavaProjectpublic boolean hasCycleMarker()
public int hashCode()
JavaElement
hashCode in class JavaElementpublic boolean hasSource()
public boolean isOnClasspath(IJavaElement element)
IJavaProject
isOnClasspath in interface IJavaProjectelement - 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 IJavaProjectresource - 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 IJavaProjectIJavaProject.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 IJavaProjectregion - 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
IJavaProjectNote that if a working copy is empty, it will be as if the original compilation unit had been deleted.
newTypeHierarchy in interface IJavaProjectregion - 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 IJavaProjecttype - 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
IJavaProjectNote that if a working copy is empty, it will be as if the original compilation unit had been deleted.
newTypeHierarchy in interface IJavaProjecttype - 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.AssertionFailedExceptionpublic 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 IJavaProjectIJavaProjectpublic 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 IJavaProjectIJavaProjectpublic void resetCaches()
public IClasspathEntry[] resolveClasspath(IClasspathEntry[] rawClasspath)
throws JavaModelException
JavaModelException
public void resolveClasspath(JavaModelManager.PerProjectInfo perProjectInfo)
throws JavaModelException
JavaModelExceptionpublic 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)
IJavaProjectEquivalent 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 IJavaProjectoptionName - 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 IJavaProjectnewOptions - 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
IJavaProjectThe 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 IJavaProjectpath - 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)
IJavaProjectpublic void setProject(IProject project)
setProject in interface IProjectNatureproject - the project to which this nature appliesIProjectNature.setProject(IProject)
public void setRawClasspath(IClasspathEntry[] entries,
boolean canModifyResources,
org.eclipse.core.runtime.IProgressMonitor monitor)
throws JavaModelException
IJavaProjectJavaCore.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 IJavaProjectentries - 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
IJavaProjectJavaCore.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 IJavaProjectnewRawClasspath - 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
IJavaProjectJavaCore.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 IJavaProjectentries - 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
IJavaProjectJavaCore.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 IJavaProjectentries - 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.CoreExceptiongetSharedProperty(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 | |||||||||