Class MultiOperation
java.lang.Object
org.aspectj.org.eclipse.jdt.internal.core.JavaModelOperation
org.aspectj.org.eclipse.jdt.internal.core.MultiOperation
- All Implemented Interfaces:
org.eclipse.core.resources.IWorkspaceRunnable,org.eclipse.core.runtime.ICoreRunnable,org.eclipse.core.runtime.IProgressMonitor
- Direct Known Subclasses:
CopyElementsOperation,CopyResourceElementsOperation,DeleteElementsOperation,DeleteResourceElementsOperation
This class is used to perform operations on multiple
IJavaElement.
It is responible for running each operation in turn, collecting
the errors and merging the corresponding JavaElementDeltas.
If several errors occured, they are collected in a multi-status
JavaModelStatus. Otherwise, a simple JavaModelStatus
is thrown.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.aspectj.org.eclipse.jdt.internal.core.JavaModelOperation
JavaModelOperation.IPostAction -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected MapTable specifying insertion positions for elements being copied/moved/renamed.protected MapTable specifying the new parent for elements being copied/moved/renamed.protected MapThis table presents the data infRenamingListin a more convenient way.protected String[]The list of renamings supplied to the operationFields 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, TRUEFields inherited from interface org.eclipse.core.runtime.IProgressMonitor
UNKNOWN -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedMultiOperation(IJavaElement[] elementsToProcess, boolean force) Creates a newMultiOperationonelementsToProcess.protectedMultiOperation(IJavaElement[] elementsToProcess, IJavaElement[] parentElements, boolean force) Creates a newMultiOperation. -
Method Summary
Modifier and TypeMethodDescriptionprotected voiderror(int code, IJavaElement element) Convenience method to create aJavaModelExceptionembending aJavaModelStatus.protected voidExecutes the operation.protected IJavaElementgetDestinationParent(IJavaElement child) Returns the parent of the element being copied/moved/renamed.protected abstract StringReturns the name to be used by the progress monitor.protected StringgetNewNameFor(IJavaElement element) Returns the new name forelement, ornullif there are no renamings specified.protected booleanisMove()Returnstrueif this operation represents a move or rename,falseif this operation represents a copy.
Note: a rename is just a move within the same parent with a name change.protected booleanisRename()Returnstrueif this operation represents a rename,falseif this operation represents a copy or move.protected abstract voidprocessElement(IJavaElement element) Subclasses must implement this method to process a givenIJavaElement.protected voidProcesses all theIJavaElements in turn, collecting errors and updating the progress monitor.voidsetInsertBefore(IJavaElement modifiedElement, IJavaElement newSibling) Sets the insertion position in the new container for the modified element.voidsetRenamings(String[] renamingsList) Sets the new names to use for each element being copied.protected abstract voidverify(IJavaElement element) This method is called for eachIJavaElementbeforeprocessElement.protected voidverifyDestination(IJavaElement element, IJavaElement destination) Verifies that thedestinationspecified for theelementis valid for the types of theelementanddestination.protected voidverifyRenaming(IJavaElement element) Verify that the new name specified forelementis valid for that type of Java element.protected voidverifySibling(IJavaElement element, IJavaElement destination) Verifies that the positioning sibling specified for theelementis exists and its parent is the destination container of thiselement.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, getLatestASTLevel, getNestedFolders, getParentElement, getParentElements, getResultElements, getSchedulingRule, getSubProgressMonitor, hasModifiedResource, internalWorked, isCanceled, isReadOnly, isTopLevelOperation, moveResources, newJavaElementDelta, popOperation, postAction, prefixesOneOf, pushOperation, removeAllPostAction, removeReconcileDelta, run, runOperation, runPostActions, setAttribute, setCanceled, setNested, setTaskName, subTask, verify, workedMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.eclipse.core.runtime.IProgressMonitor
clearBlocked, setBlocked, slice
-
Field Details
-
insertBeforeElements
Table specifying insertion positions for elements being copied/moved/renamed. Keyed by elements being processed, and values are the corresponding insertion point.- See Also:
-
newParents
Table specifying the new parent for elements being copied/moved/renamed. Keyed by elements being processed, and values are the corresponding destination parent. -
renamings
This table presents the data infRenamingListin a more convenient way. -
renamingsList
The list of renamings supplied to the operation
-
-
Constructor Details
-
MultiOperation
Creates a newMultiOperationonelementsToProcess. -
MultiOperation
protected MultiOperation(IJavaElement[] elementsToProcess, IJavaElement[] parentElements, boolean force) Creates a newMultiOperation.
-
-
Method Details
-
error
Convenience method to create aJavaModelExceptionembending aJavaModelStatus.- Throws:
JavaModelException
-
executeOperation
Executes the operation.- Specified by:
executeOperationin classJavaModelOperation- Throws:
JavaModelException- if one or several errors occured during the operation. If multiple errors occured, the correspondingJavaModelStatusis a multi-status. Otherwise, it is a simple one.
-
getDestinationParent
Returns the parent of the element being copied/moved/renamed. -
getMainTaskName
Returns the name to be used by the progress monitor. -
getNewNameFor
Returns the new name forelement, ornullif there are no renamings specified.- Throws:
JavaModelException
-
isMove
protected boolean isMove()Returnstrueif this operation represents a move or rename,falseif this operation represents a copy.
Note: a rename is just a move within the same parent with a name change. -
isRename
protected boolean isRename()Returnstrueif this operation represents a rename,falseif this operation represents a copy or move. -
processElement
Subclasses must implement this method to process a givenIJavaElement.- Throws:
JavaModelException
-
processElements
Processes all theIJavaElements in turn, collecting errors and updating the progress monitor.- Throws:
JavaModelException- if one or several operation(s) was unable to be completed.
-
setInsertBefore
Sets the insertion position in the new container for the modified element. The element being modified will be inserted before the specified new sibling. The given sibling must be a child of the destination container specified for the modified element. The default isnull, which indicates that the element is to be inserted at the end of the container. -
setRenamings
Sets the new names to use for each element being copied. The renamings correspond to the elements being processed, and the number of renamings must match the number of elements being processed. Anullentry in the list indicates that an element is not to be renamed.Note that some renamings may not be used. If both a parent and a child have been selected for copy/move, only the parent is changed. Therefore, if a new name is specified for the child, the child's name will not be changed.
-
verify
This method is called for eachIJavaElementbeforeprocessElement. It should check that thiselementcan be processed.- Throws:
JavaModelException
-
verifyDestination
protected void verifyDestination(IJavaElement element, IJavaElement destination) throws JavaModelException Verifies that thedestinationspecified for theelementis valid for the types of theelementanddestination.- Throws:
JavaModelException
-
verifyRenaming
Verify that the new name specified forelementis valid for that type of Java element.- Throws:
JavaModelException
-
verifySibling
protected void verifySibling(IJavaElement element, IJavaElement destination) throws JavaModelException Verifies that the positioning sibling specified for theelementis exists and its parent is the destination container of thiselement.- Throws:
JavaModelException
-