org.aspectj.org.eclipse.jdt.internal.core
Class JavaModelOperation

java.lang.Object
  extended by org.aspectj.org.eclipse.jdt.internal.core.JavaModelOperation
Direct Known Subclasses:
BatchOperation, BecomeWorkingCopyOperation, ChangeClasspathOperation, CommitWorkingCopyOperation, CopyPackageFragmentRootOperation, CreateCompilationUnitOperation, CreateElementInCUOperation, CreatePackageFragmentOperation, CreateTypeHierarchyOperation, DeletePackageFragmentRootOperation, DiscardWorkingCopyOperation, MultiOperation, ReconcileWorkingCopyOperation, SortElementsOperation

public abstract class JavaModelOperation
extends java.lang.Object

Defines behavior common to all Java Model operations


Nested Class Summary
protected static interface JavaModelOperation.IPostAction
           
 
Field Summary
protected  JavaModelOperation.IPostAction[] actions
           
protected  int actionsEnd
           
protected  int actionsStart
           
protected static int APPEND
           
protected  java.util.HashMap attributes
           
protected  IJavaElement[] elementsToProcess
          The elements this operation operates on, or null if this operation does not operate on specific elements.
protected  boolean force
          Conflict resolution policy - by default do not force (fail on a conflict).
static java.lang.String HAS_MODIFIED_RESOURCE_ATTR
           
protected  boolean isNested
          A flag indicating whether this operation is nested.
protected static int KEEP_EXISTING
           
protected static IJavaElement[] NO_ELEMENTS
          An empty collection of IJavaElements - the common empty result if no elements are created, or if this operation is not actually executed.
protected static java.lang.ThreadLocal OPERATION_STACKS
           
protected  IJavaElement[] parentElements
          The parent elements this operation operates with or null if this operation does not operate with specific parent elements.
protected static boolean POST_ACTION_VERBOSE
           
 IProgressMonitor progressMonitor
          The progress monitor passed into this operation
protected static int REMOVEALL_APPEND
           
protected  IJavaElement[] resultElements
          The elements created by this operation - empty until the operation actually creates elements.
static java.lang.String TRUE
           
 
Constructor Summary
protected JavaModelOperation()
           
protected JavaModelOperation(IJavaElement element)
          Common constructor for all Java Model operations.
protected JavaModelOperation(IJavaElement[] elements)
          A common constructor for all Java Model operations.
protected JavaModelOperation(IJavaElement[] elements, boolean force)
          A common constructor for all Java Model operations.
protected JavaModelOperation(IJavaElement[] elementsToProcess, IJavaElement[] parentElements)
          Common constructor for all Java Model operations.
protected JavaModelOperation(IJavaElement[] elementsToProcess, IJavaElement[] parentElements, boolean force)
          A common constructor for all Java Model operations.
 
Method Summary
protected  void addAction(JavaModelOperation.IPostAction action)
           
protected  void addDelta(IJavaElementDelta delta)
           
protected  void addReconcileDelta(ICompilationUnit workingCopy, IJavaElementDelta delta)
           
protected  void applyTextEdit(ICompilationUnit cu, TextEdit edits)
           
 void beginTask(java.lang.String name, int totalWork)
           
protected  boolean canModifyRoots()
           
protected  void checkCanceled()
          Checks with the progress monitor to see whether this operation should be canceled.
protected  IJavaModelStatus commonVerify()
          Common code used to verify the elements this operation is processing.
protected  void copyResources(IResource[] resources, IPath container)
          Convenience method to copy resources
protected  void createFile(IContainer folder, java.lang.String name, java.io.InputStream contents, boolean forceFlag)
          Convenience method to create a file
protected  void createFolder(IContainer parentFolder, java.lang.String name, boolean forceFlag)
          Convenience method to create a folder
protected  void deleteEmptyPackageFragment(IPackageFragment fragment, boolean forceFlag, IResource rootResource)
          Convenience method to delete an empty package fragment
protected  void deleteResource(IResource resource, int flags)
          Convenience method to delete a resource
protected  void deleteResources(IResource[] resources, boolean forceFlag)
          Convenience method to delete resources
 void done()
           
protected  boolean equalsOneOf(IPath path, IPath[] otherPaths)
           
 void executeNestedOperation(JavaModelOperation operation, int subWorkAmount)
          Convenience method to run an operation within this operation
protected abstract  void executeOperation()
          Performs the operation specific behavior.
protected  int firstActionWithID(java.lang.String id, int start)
           
protected static java.lang.Object getAttribute(java.lang.Object key)
           
protected  ICompilationUnit getCompilationUnitFor(IJavaElement element)
          Returns the compilation unit the given element is contained in, or the element itself (if it is a compilation unit), otherwise null.
protected static java.util.ArrayList getCurrentOperationStack()
           
protected  IDocument getDocument(ICompilationUnit cu)
           
protected  IJavaElement getElementToProcess()
          Returns the element to which this operation applies, or null if not applicable.
 IJavaModel getJavaModel()
          Returns the Java Model this operation is operating in.
protected  IPath[] getNestedFolders(IPackageFragmentRoot root)
           
protected  IJavaElement getParentElement()
          Returns the parent element to which this operation applies, or null if not applicable.
protected  IJavaElement[] getParentElements()
          Returns the parent elements to which this operation applies, or null if not applicable.
 IJavaElement[] getResultElements()
          Returns the elements created by this operation.
protected  ISchedulingRule getSchedulingRule()
           
protected  IProgressMonitor getSubProgressMonitor(int workAmount)
          Creates and returns a subprogress monitor if appropriate.
 boolean hasModifiedResource()
          Returns whether this operation has performed any resource modifications.
 void internalWorked(double work)
           
 boolean isCanceled()
           
 boolean isReadOnly()
          Returns true if this operation performs no resource modifications, otherwise false.
protected  boolean isTopLevelOperation()
           
protected  void moveResources(IResource[] resources, IPath container)
          Convenience method to move resources
 JavaElementDelta newJavaElementDelta()
          Creates and returns a new IJavaElementDelta on the Java Model.
protected  JavaModelOperation popOperation()
           
protected  void postAction(JavaModelOperation.IPostAction action, int insertionMode)
           
protected  boolean prefixesOneOf(IPath path, IPath[] otherPaths)
           
protected  void pushOperation(JavaModelOperation operation)
           
protected  void removeAllPostAction(java.lang.String actionID)
           
protected  void removeReconcileDelta(ICompilationUnit workingCopy)
           
 void run(IProgressMonitor monitor)
          Runs this operation and registers any deltas created.
 void runOperation(IProgressMonitor monitor)
          Main entry point for Java Model operations.
protected  void runPostActions()
           
protected static void setAttribute(java.lang.Object key, java.lang.Object attribute)
           
 void setCanceled(boolean b)
           
protected  void setNested(boolean nested)
          Sets whether this operation is nested or not.
 void setTaskName(java.lang.String name)
           
 void subTask(java.lang.String name)
           
protected  IJavaModelStatus verify()
          Returns a status indicating if there is any known reason this operation will fail.
 void worked(int work)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

APPEND

protected static final int APPEND
See Also:
Constant Field Values

REMOVEALL_APPEND

protected static final int REMOVEALL_APPEND
See Also:
Constant Field Values

KEEP_EXISTING

protected static final int KEEP_EXISTING
See Also:
Constant Field Values

POST_ACTION_VERBOSE

protected static boolean POST_ACTION_VERBOSE

actions

protected JavaModelOperation.IPostAction[] actions

actionsStart

protected int actionsStart

actionsEnd

protected int actionsEnd

attributes

protected java.util.HashMap attributes

HAS_MODIFIED_RESOURCE_ATTR

public static final java.lang.String HAS_MODIFIED_RESOURCE_ATTR
See Also:
Constant Field Values

TRUE

public static final java.lang.String TRUE
See Also:
Constant Field Values

elementsToProcess

protected IJavaElement[] elementsToProcess
The elements this operation operates on, or null if this operation does not operate on specific elements.


parentElements

protected IJavaElement[] parentElements
The parent elements this operation operates with or null if this operation does not operate with specific parent elements.


NO_ELEMENTS

protected static final IJavaElement[] NO_ELEMENTS
An empty collection of IJavaElements - the common empty result if no elements are created, or if this operation is not actually executed.


resultElements

protected IJavaElement[] resultElements
The elements created by this operation - empty until the operation actually creates elements.


progressMonitor

public IProgressMonitor progressMonitor
The progress monitor passed into this operation


isNested

protected boolean isNested
A flag indicating whether this operation is nested.


force

protected boolean force
Conflict resolution policy - by default do not force (fail on a conflict).


OPERATION_STACKS

protected static final java.lang.ThreadLocal OPERATION_STACKS
Constructor Detail

JavaModelOperation

protected JavaModelOperation()

JavaModelOperation

protected JavaModelOperation(IJavaElement[] elements)
A common constructor for all Java Model operations.


JavaModelOperation

protected JavaModelOperation(IJavaElement[] elementsToProcess,
                             IJavaElement[] parentElements)
Common constructor for all Java Model operations.


JavaModelOperation

protected JavaModelOperation(IJavaElement[] elementsToProcess,
                             IJavaElement[] parentElements,
                             boolean force)
A common constructor for all Java Model operations.


JavaModelOperation

protected JavaModelOperation(IJavaElement[] elements,
                             boolean force)
A common constructor for all Java Model operations.


JavaModelOperation

protected JavaModelOperation(IJavaElement element)
Common constructor for all Java Model operations.

Method Detail

addAction

protected void addAction(JavaModelOperation.IPostAction action)

addDelta

protected void addDelta(IJavaElementDelta delta)

addReconcileDelta

protected void addReconcileDelta(ICompilationUnit workingCopy,
                                 IJavaElementDelta delta)

removeReconcileDelta

protected void removeReconcileDelta(ICompilationUnit workingCopy)

applyTextEdit

protected void applyTextEdit(ICompilationUnit cu,
                             TextEdit edits)
                      throws JavaModelException
Throws:
JavaModelException

beginTask

public void beginTask(java.lang.String name,
                      int totalWork)
See Also:
IProgressMonitor

canModifyRoots

protected boolean canModifyRoots()

checkCanceled

protected void checkCanceled()
Checks with the progress monitor to see whether this operation should be canceled. An operation should regularly call this method during its operation so that the user can cancel it.

Throws:
OperationCanceledException - if cancelling the operation has been requested
See Also:
IProgressMonitor#isCanceled

commonVerify

protected IJavaModelStatus commonVerify()
Common code used to verify the elements this operation is processing.

See Also:
verify()

copyResources

protected void copyResources(IResource[] resources,
                             IPath container)
                      throws JavaModelException
Convenience method to copy resources

Throws:
JavaModelException

createFile

protected void createFile(IContainer folder,
                          java.lang.String name,
                          java.io.InputStream contents,
                          boolean forceFlag)
                   throws JavaModelException
Convenience method to create a file

Throws:
JavaModelException

createFolder

protected void createFolder(IContainer parentFolder,
                            java.lang.String name,
                            boolean forceFlag)
                     throws JavaModelException
Convenience method to create a folder

Throws:
JavaModelException

deleteEmptyPackageFragment

protected void deleteEmptyPackageFragment(IPackageFragment fragment,
                                          boolean forceFlag,
                                          IResource rootResource)
                                   throws JavaModelException
Convenience method to delete an empty package fragment

Throws:
JavaModelException

deleteResource

protected void deleteResource(IResource resource,
                              int flags)
                       throws JavaModelException
Convenience method to delete a resource

Throws:
JavaModelException

deleteResources

protected void deleteResources(IResource[] resources,
                               boolean forceFlag)
                        throws JavaModelException
Convenience method to delete resources

Throws:
JavaModelException

done

public void done()
See Also:
IProgressMonitor

equalsOneOf

protected boolean equalsOneOf(IPath path,
                              IPath[] otherPaths)

executeNestedOperation

public void executeNestedOperation(JavaModelOperation operation,
                                   int subWorkAmount)
                            throws JavaModelException
Convenience method to run an operation within this operation

Throws:
JavaModelException

executeOperation

protected abstract void executeOperation()
                                  throws JavaModelException
Performs the operation specific behavior. Subclasses must override.

Throws:
JavaModelException

getAttribute

protected static java.lang.Object getAttribute(java.lang.Object key)

getCompilationUnitFor

protected ICompilationUnit getCompilationUnitFor(IJavaElement element)
Returns the compilation unit the given element is contained in, or the element itself (if it is a compilation unit), otherwise null.


getCurrentOperationStack

protected static java.util.ArrayList getCurrentOperationStack()

getDocument

protected IDocument getDocument(ICompilationUnit cu)
                         throws JavaModelException
Throws:
JavaModelException

getElementToProcess

protected IJavaElement getElementToProcess()
Returns the element to which this operation applies, or null if not applicable.


getJavaModel

public IJavaModel getJavaModel()
Returns the Java Model this operation is operating in.


getNestedFolders

protected IPath[] getNestedFolders(IPackageFragmentRoot root)
                            throws JavaModelException
Throws:
JavaModelException

getParentElement

protected IJavaElement getParentElement()
Returns the parent element to which this operation applies, or null if not applicable.


getParentElements

protected IJavaElement[] getParentElements()
Returns the parent elements to which this operation applies, or null if not applicable.


getResultElements

public IJavaElement[] getResultElements()
Returns the elements created by this operation.


getSchedulingRule

protected ISchedulingRule getSchedulingRule()

getSubProgressMonitor

protected IProgressMonitor getSubProgressMonitor(int workAmount)
Creates and returns a subprogress monitor if appropriate.


hasModifiedResource

public boolean hasModifiedResource()
Returns whether this operation has performed any resource modifications. Returns false if this operation has not been executed yet.


internalWorked

public void internalWorked(double work)

isCanceled

public boolean isCanceled()
See Also:
IProgressMonitor

isReadOnly

public boolean isReadOnly()
Returns true if this operation performs no resource modifications, otherwise false. Subclasses must override.


isTopLevelOperation

protected boolean isTopLevelOperation()

firstActionWithID

protected int firstActionWithID(java.lang.String id,
                                int start)

moveResources

protected void moveResources(IResource[] resources,
                             IPath container)
                      throws JavaModelException
Convenience method to move resources

Throws:
JavaModelException

newJavaElementDelta

public JavaElementDelta newJavaElementDelta()
Creates and returns a new IJavaElementDelta on the Java Model.


popOperation

protected JavaModelOperation popOperation()

postAction

protected void postAction(JavaModelOperation.IPostAction action,
                          int insertionMode)

prefixesOneOf

protected boolean prefixesOneOf(IPath path,
                                IPath[] otherPaths)

pushOperation

protected void pushOperation(JavaModelOperation operation)

removeAllPostAction

protected void removeAllPostAction(java.lang.String actionID)

run

public void run(IProgressMonitor monitor)
         throws CoreException
Runs this operation and registers any deltas created.

Throws:
CoreException - if the operation fails
See Also:
IWorkspaceRunnable

runOperation

public void runOperation(IProgressMonitor monitor)
                  throws JavaModelException
Main entry point for Java Model operations. Runs a Java Model Operation as an IWorkspaceRunnable if not read-only.

Throws:
JavaModelException

runPostActions

protected void runPostActions()
                       throws JavaModelException
Throws:
JavaModelException

setAttribute

protected static void setAttribute(java.lang.Object key,
                                   java.lang.Object attribute)

setCanceled

public void setCanceled(boolean b)
See Also:
IProgressMonitor

setNested

protected void setNested(boolean nested)
Sets whether this operation is nested or not.

See Also:
CreateElementInCUOperation.checkCanceled()

setTaskName

public void setTaskName(java.lang.String name)
See Also:
IProgressMonitor

subTask

public void subTask(java.lang.String name)
See Also:
IProgressMonitor

verify

protected IJavaModelStatus verify()
Returns a status indicating if there is any known reason this operation will fail. Operations are verified before they are run. Subclasses must override if they have any conditions to verify before this operation executes.

See Also:
IJavaModelStatus

worked

public void worked(int work)
See Also:
IProgressMonitor