|
|
|
|
org.eclipse.jdt.core
Interface IJavaModel
-
All Superinterfaces:
-
IAdaptable,
IJavaElement,
IOpenable,
IParent
-
public interface IJavaModel
- extends
IJavaElement,
IOpenable,
IParent
Represent the root Java element corresponding to the workspace.
Since there is only one such root element, it is commonly referred to as
the Java model element.
The Java model element needs to be opened before it can be navigated or manipulated.
The Java model element has no parent (it is the root of the Java element
hierarchy). Its children are IJavaProject s.
This interface provides methods for performing copy, move, rename, and
delete operations on multiple Java elements.
An instance of one of these handles can be created via
JavaCore.create(workspace.getRoot()) .
-
See Also:
-
JavaCore.create(org.eclipse.core.resources.IWorkspaceRoot)
-
Restriction:
- This interface is not intended to be implemented by clients.
Fields inherited from interface org.eclipse.jdt.core.
IJavaElement
|
ANNOTATION,
CLASS_FILE,
COMPILATION_UNIT,
FIELD,
IMPORT_CONTAINER,
IMPORT_DECLARATION,
INITIALIZER,
JAVA_MODEL,
JAVA_PROJECT,
LOCAL_VARIABLE,
METHOD,
PACKAGE_DECLARATION,
PACKAGE_FRAGMENT,
PACKAGE_FRAGMENT_ROOT,
TYPE,
TYPE_PARAMETER
|
Method Summary
|
boolean
|
contains
(
IResource resource)
Returns whether this Java model contains an IJavaElement whose
resource is the given resource or a non-Java resource which is the given resource. |
void
|
copy
(
IJavaElement[] elements,
IJavaElement[] containers,
IJavaElement[] siblings,
String[] renamings,
boolean replace,
IProgressMonitor monitor)
Copies the given elements to the specified container(s). |
void
|
delete
(
IJavaElement[] elements,
boolean force,
IProgressMonitor monitor)
Deletes the given elements, forcing the operation if necessary and specified. |
IJavaProject
|
getJavaProject
(
String name)
Returns the Java project with the given name. |
IJavaProject[]
|
getJavaProjects
()
Returns the Java projects in this Java model, or an empty array if there
are none. |
Object[]
|
getNonJavaResources
()
Returns an array of non-Java resources (that is, non-Java projects) in
the workspace. |
IWorkspace
|
getWorkspace
()
Returns the workspace associated with this Java model. |
void
|
move
(
IJavaElement[] elements,
IJavaElement[] containers,
IJavaElement[] siblings,
String[] renamings,
boolean replace,
IProgressMonitor monitor)
Moves the given elements to the specified container(s). |
void
|
refreshExternalArchives
(
IJavaElement[] elementsScope,
IProgressMonitor monitor)
Triggers an update of the JavaModel with respect to the referenced external archives. |
void
|
rename
(
IJavaElement[] elements,
IJavaElement[] destinations,
String[] names,
boolean replace,
IProgressMonitor monitor)
Renames the given elements as specified. |
Methods inherited from interface org.eclipse.jdt.core.
IJavaElement
|
exists,
getAncestor,
getAttachedJavadoc,
getCorrespondingResource,
getElementName,
getElementType,
getHandleIdentifier,
getJavaModel,
getJavaProject,
getOpenable,
getParent,
getPath,
getPrimaryElement,
getResource,
getSchedulingRule,
getUnderlyingResource,
isReadOnly,
isStructureKnown
|
contains
boolean contains(
IResource resource)
- Returns whether this Java model contains an
IJavaElement whose
resource is the given resource or a non-Java resource which is the given resource.
Note: no existency check is performed on the argument resource. If it is not accessible
(see IResource.isAccessible() ) yet but would be located in Java model
range, then it will return true .
If the resource is accessible, it can be reached by navigating the Java model down using the
getChildren() and/or getNonJavaResources() methods.
-
-
-
Parameters:
-
resource - the resource to check
-
Returns:
- true if the resource is accessible through the Java model
-
Since:
- 2.1
copy
void copy(
IJavaElement[] elements,
IJavaElement[] containers,
IJavaElement[] siblings,
String[] renamings,
boolean replace,
IProgressMonitor monitor)
throws
JavaModelException
- Copies the given elements to the specified container(s).
If one container is specified, all elements are copied to that
container. If more than one container is specified, the number of
elements and containers must match, and each element is copied to
its associated container.
Optionally, each copy can positioned before a sibling
element. If null is specified for a given sibling, the copy
is inserted as the last child of its associated container.
Optionally, each copy can be renamed. If
null is specified for the new name, the copy
is not renamed.
Optionally, any existing child in the destination container with
the same name can be replaced by specifying true for
force. Otherwise an exception is thrown in the event that a name
collision occurs.
-
-
-
Parameters:
-
elements - the elements to copy -
containers - the container, or list of containers -
siblings - the list of siblings element any of which may be
null ; or null
-
renamings - the list of new names any of which may be
null ; or null
-
replace - true if any existing child in a target container
with the target name should be replaced, and false to throw an
exception in the event of a name collision -
monitor - a progress monitor
-
Throws:
-
JavaModelException
- if an element could not be copied. Reasons include:
- There is no element to process (NO_ELEMENTS_TO_PROCESS). The given elements is null or empty
- A specified element, container, or sibling does not exist (ELEMENT_DOES_NOT_EXIST)
- A
CoreException occurred while updating an underlying resource
- A container is of an incompatible type (
INVALID_DESTINATION )
- A sibling is not a child of it associated container (
INVALID_SIBLING )
- A new name is invalid (
INVALID_NAME )
- A child in its associated container already exists with the same
name and
replace has been specified as false (NAME_COLLISION )
- A container or element is read-only (
READ_ONLY )
delete
void delete(
IJavaElement[] elements,
boolean force,
IProgressMonitor monitor)
throws
JavaModelException
- Deletes the given elements, forcing the operation if necessary and specified.
-
-
-
Parameters:
-
elements - the elements to delete -
force - a flag controlling whether underlying resources that are not
in sync with the local file system will be tolerated -
monitor - a progress monitor
-
Throws:
-
JavaModelException
- if an element could not be deleted. Reasons include:
- There is no element to process (NO_ELEMENTS_TO_PROCESS). The given elements is null or empty
- A specified element does not exist (ELEMENT_DOES_NOT_EXIST)
- A
CoreException occurred while updating an underlying resource
- An element is read-only (
READ_ONLY )
getJavaProject
IJavaProject getJavaProject(
String name)
- Returns the Java project with the given name. The given name must be a valid
path segment as defined by
IPath.isValidSegment(String) .
This is a handle-only method.
The project may or may not exist.
-
-
-
Parameters:
-
name - the name of the Java project
-
Returns:
- the Java project with the given name
getJavaProjects
IJavaProject[] getJavaProjects()
throws
JavaModelException
- Returns the Java projects in this Java model, or an empty array if there
are none.
-
-
-
Returns:
- the Java projects in this Java model, or an empty array if there
are none
-
Throws:
-
JavaModelException
- if this request fails.
getNonJavaResources
Object[] getNonJavaResources()
throws
JavaModelException
- Returns an array of non-Java resources (that is, non-Java projects) in
the workspace.
Non-Java projects include all projects that are closed (even if they have the
Java nature).
-
-
-
Returns:
- an array of non-Java projects (
IProject s) contained
in the workspace.
-
Throws:
-
JavaModelException
- if this element does not exist or if an
exception occurs while accessing its corresponding resource -
Since:
- 2.1
getWorkspace
IWorkspace getWorkspace()
- Returns the workspace associated with this Java model.
-
-
-
Returns:
- the workspace associated with this Java model
move
void move(
IJavaElement[] elements,
IJavaElement[] containers,
IJavaElement[] siblings,
String[] renamings,
boolean replace,
IProgressMonitor monitor)
throws
JavaModelException
- Moves the given elements to the specified container(s).
If one container is specified, all elements are moved to that
container. If more than one container is specified, the number of
elements and containers must match, and each element is moved to
its associated container.
Optionally, each element can positioned before a sibling
element. If null is specified for sibling, the element
is inserted as the last child of its associated container.
Optionally, each element can be renamed. If
null is specified for the new name, the element
is not renamed.
Optionally, any existing child in the destination container with
the same name can be replaced by specifying true for
force. Otherwise an exception is thrown in the event that a name
collision occurs.
-
-
-
Parameters:
-
elements - the elements to move -
containers - the container, or list of containers -
siblings - the list of siblings element any of which may be
null ; or null
-
renamings - the list of new names any of which may be
null ; or null
-
replace - true if any existing child in a target container
with the target name should be replaced, and false to throw an
exception in the event of a name collision -
monitor - a progress monitor
-
Throws:
-
JavaModelException
- if an element could not be moved. Reasons include:
- There is no element to process (NO_ELEMENTS_TO_PROCESS). The given elements is null or empty
- A specified element, container, or sibling does not exist (ELEMENT_DOES_NOT_EXIST)
- A
CoreException occurred while updating an underlying resource
- A container is of an incompatible type (
INVALID_DESTINATION )
- A sibling is not a child of it associated container (
INVALID_SIBLING )
- A new name is invalid (
INVALID_NAME )
- A child in its associated container already exists with the same
name and
replace has been specified as false (NAME_COLLISION )
- A container or element is read-only (
READ_ONLY )
-
IllegalArgumentException
- any element or container is null
refreshExternalArchives
void refreshExternalArchives(
IJavaElement[] elementsScope,
IProgressMonitor monitor)
throws
JavaModelException
- Triggers an update of the JavaModel with respect to the referenced external archives.
This operation will issue a JavaModel delta describing the discovered changes, in term
of Java element package fragment roots added, removed or changed.
Note that a collection of elements can be passed so as to narrow the set of archives
to refresh (passing
null along is equivalent to refreshing the entire mode).
The elements can be:
- package fragment roots corresponding to external archives
- Java projects, which referenced external archives will be refreshed
- Java model, all referenced external archives will be refreshed.
In case an archive is used by multiple projects, the delta issued will account for
all of them. This means that even if a project was not part of the elements scope, it
may still be notified of changes if it is referencing a library comprised in the scope.
-
-
-
Parameters:
-
elementsScope - - a collection of elements defining the scope of the refresh -
monitor - - a progress monitor used to report progress
-
Throws:
-
JavaModelException
- in one of the corresponding situation:
- an exception occurs while accessing project resources
-
Since:
- 2.0
-
See Also:
-
IJavaElementDelta
rename
void rename(
IJavaElement[] elements,
IJavaElement[] destinations,
String[] names,
boolean replace,
IProgressMonitor monitor)
throws
JavaModelException
- Renames the given elements as specified.
If one container is specified, all elements are renamed within that
container. If more than one container is specified, the number of
elements and containers must match, and each element is renamed within
its associated container.
-
-
-
Parameters:
-
elements - the elements to rename -
destinations - the container, or list of containers -
names - the list of new names -
replace - true if an existing child in a target container
with the target name should be replaced, and false to throw an
exception in the event of a name collision -
monitor - a progress monitor
-
Throws:
-
JavaModelException
- if an element could not be renamed. Reasons include:
- There is no element to process (NO_ELEMENTS_TO_PROCESS). The given elements is null or empty
- A specified element does not exist (ELEMENT_DOES_NOT_EXIST)
- A
CoreException occurred while updating an underlying resource
- A new name is invalid (
INVALID_NAME )
- A child already exists with the same name and
replace has been specified as false (NAME_COLLISION )
- An element is read-only (
READ_ONLY )
Copyright (c) IBM Corp. and others 2000, 2008. All Rights Reserved.
|
|
|