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

java.lang.Object
  extended by org.aspectj.org.eclipse.jdt.internal.core.JavaModelOperation
      extended by org.aspectj.org.eclipse.jdt.internal.core.MultiOperation
          extended by org.aspectj.org.eclipse.jdt.internal.core.DeleteElementsOperation

public class DeleteElementsOperation
extends MultiOperation

This operation deletes a collection of elements (and all of their children). If an element does not exist, it is ignored.

NOTE: This operation only deletes elements contained within leaf resources - that is, elements within compilation units. To delete a compilation unit or a package, etc (which have an actual resource), a DeleteResourcesOperation should be used.


Nested Class Summary
 
Nested classes/interfaces inherited from class org.aspectj.org.eclipse.jdt.internal.core.JavaModelOperation
JavaModelOperation.IPostAction
 
Field Summary
protected  java.util.Map childrenToRemove
          The elements this operation processes grouped by compilation unit
protected  ASTParser parser
          The ASTParser used to manipulate the source code of ICompilationUnit.
 
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.core.MultiOperation
insertBeforeElements, newParents, renamings, renamingsList
 
Fields inherited from class org.aspectj.org.eclipse.jdt.internal.core.JavaModelOperation
actions, actionsEnd, actionsStart, APPEND, attributes, elementsToProcess, force, HAS_MODIFIED_RESOURCE_ATTR, isNested, KEEP_EXISTING, NO_ELEMENTS, OPERATION_STACKS, parentElements, POST_ACTION_VERBOSE, progressMonitor, REMOVEALL_APPEND, resultElements, TRUE
 
Constructor Summary
DeleteElementsOperation(IJavaElement[] elementsToDelete, boolean force)
          When executed, this operation will delete the given elements.
 
Method Summary
protected  java.lang.String getMainTaskName()
          Returns the name to be used by the progress monitor.
protected  ISchedulingRule getSchedulingRule()
           
protected  void groupElements()
          Groups the elements to be processed by their compilation unit.
protected  void processElement(IJavaElement element)
          Deletes this element from its compilation unit.
protected  void processElements()
          Processes all the IJavaElements in turn, collecting errors and updating the progress monitor.
protected  void verify(IJavaElement element)
          This method is called for each IJavaElement before processElement.
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.core.MultiOperation
error, executeOperation, getDestinationParent, getNewNameFor, isMove, isRename, setInsertBefore, setRenamings, verifyDestination, verifyRenaming, verifySibling
 
Methods inherited from class org.aspectj.org.eclipse.jdt.internal.core.JavaModelOperation
addAction, addDelta, addReconcileDelta, applyTextEdit, beginTask, canModifyRoots, checkCanceled, commonVerify, copyResources, createFile, createFolder, deleteEmptyPackageFragment, deleteResource, deleteResources, done, equalsOneOf, executeNestedOperation, firstActionWithID, getAttribute, getCompilationUnitFor, getCurrentOperationStack, getDocument, getElementToProcess, getJavaModel, getNestedFolders, getParentElement, getParentElements, getResultElements, getSubProgressMonitor, hasModifiedResource, internalWorked, isCanceled, isReadOnly, isTopLevelOperation, moveResources, newJavaElementDelta, popOperation, postAction, prefixesOneOf, pushOperation, removeAllPostAction, removeReconcileDelta, run, runOperation, runPostActions, setAttribute, setCanceled, setNested, setTaskName, subTask, verify, worked
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

childrenToRemove

protected java.util.Map childrenToRemove
The elements this operation processes grouped by compilation unit

See Also:
Keys are compilation units, values are IRegions of elements to be processed in each compilation unit.

parser

protected ASTParser parser
The ASTParser used to manipulate the source code of ICompilationUnit.

Constructor Detail

DeleteElementsOperation

public DeleteElementsOperation(IJavaElement[] elementsToDelete,
                               boolean force)
When executed, this operation will delete the given elements. The elements to delete cannot be null or empty, and must be contained within a compilation unit.

Method Detail

getMainTaskName

protected java.lang.String getMainTaskName()
Description copied from class: MultiOperation
Returns the name to be used by the progress monitor.

Specified by:
getMainTaskName in class MultiOperation
See Also:
MultiOperation

getSchedulingRule

protected ISchedulingRule getSchedulingRule()
Overrides:
getSchedulingRule in class JavaModelOperation

groupElements

protected void groupElements()
                      throws JavaModelException
Groups the elements to be processed by their compilation unit. If parent/child combinations are present, children are discarded (only the parents are processed). Removes any duplicates specified in elements to be processed.

Throws:
JavaModelException

processElement

protected void processElement(IJavaElement element)
                       throws JavaModelException
Deletes this element from its compilation unit.

Specified by:
processElement in class MultiOperation
Throws:
JavaModelException
See Also:
MultiOperation

processElements

protected void processElements()
                        throws JavaModelException
Description copied from class: MultiOperation
Processes all the IJavaElements in turn, collecting errors and updating the progress monitor.

Overrides:
processElements in class MultiOperation
Throws:
JavaModelException - if one or several operation(s) was unable to be completed.
See Also:
This method first group the elements by ICompilationUnit, and then processes the ICompilationUnit.

verify

protected void verify(IJavaElement element)
               throws JavaModelException
Description copied from class: MultiOperation
This method is called for each IJavaElement before processElement. It should check that this element can be processed.

Specified by:
verify in class MultiOperation
Throws:
JavaModelException
See Also:
MultiOperation