Class CopyResourceElementsOperation
java.lang.Object
org.aspectj.org.eclipse.jdt.internal.core.JavaModelOperation
org.aspectj.org.eclipse.jdt.internal.core.MultiOperation
org.aspectj.org.eclipse.jdt.internal.core.CopyResourceElementsOperation
- All Implemented Interfaces:
SuffixConstants,org.eclipse.core.resources.IWorkspaceRunnable,org.eclipse.core.runtime.ICoreRunnable,org.eclipse.core.runtime.IProgressMonitor
- Direct Known Subclasses:
MoveResourceElementsOperation
This operation copies/moves/renames a collection of resources from their current
container to a new container, optionally renaming the
elements.
Notes:
- If there is already an resource with the same name in the new container, the operation either overwrites or aborts, depending on the collision policy setting. The default setting is abort.
- When a compilation unit is copied to a new package, the package declaration in the compilation unit is automatically updated.
- The collection of elements being copied must all share the same type of container.
- This operation can be used to copy and rename elements within the same container.
- This operation only copies compilation units and package fragments. It does not copy package fragment roots - a platform operation must be used for that.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.aspectj.org.eclipse.jdt.internal.core.JavaModelOperation
JavaModelOperation.IPostAction -
Field Summary
FieldsModifier and TypeFieldDescriptionprotected ArrayListThe list of new resources created during this operation.protected MapTable specifying deltas for elements being copied/moved/renamed.protected ASTParserTheASTParserused to manipulate the source code ofICompilationUnit.Fields inherited from class org.aspectj.org.eclipse.jdt.internal.core.MultiOperation
insertBeforeElements, newParents, renamings, renamingsListFields 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
UNKNOWNFields inherited from interface org.aspectj.org.eclipse.jdt.internal.compiler.util.SuffixConstants
EXTENSION_aj, EXTENSION_AJ, EXTENSION_class, EXTENSION_CLASS, EXTENSION_java, EXTENSION_JAVA, EXTENSION_jmod, EXTENSION_JMOD, SUFFIX_aj, SUFFIX_AJ, SUFFIX_class, SUFFIX_CLASS, SUFFIX_java, SUFFIX_JAVA, SUFFIX_STRING_aj, SUFFIX_STRING_AJ, SUFFIX_STRING_class, SUFFIX_STRING_CLASS, SUFFIX_STRING_java, SUFFIX_STRING_JAVA -
Constructor Summary
ConstructorsConstructorDescriptionCopyResourceElementsOperation(IJavaElement[] resourcesToCopy, IJavaElement[] destContainers, boolean force) When executed, this operation will copy the given resources to the given containers. -
Method Summary
Modifier and TypeMethodDescriptionprotected StringReturns the name to be used by the progress monitor.protected org.eclipse.core.runtime.jobs.ISchedulingRuleprotected voidprepareDeltas(IJavaElement sourceElement, IJavaElement destinationElement, boolean isMove, boolean overWriteCU) Sets the deltas to register the changes resulting from this operation for this source element and its destination.protected voidProcess all of the changed deltas generated by this operation.protected 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.protected IJavaModelStatusverify()Possible failures: NO_ELEMENTS_TO_PROCESS - no elements supplied to the operation INDEX_OUT_OF_BOUNDS - the number of renamings supplied to the operation does not match the number of elements that were supplied.protected voidverify(IJavaElement element) This method is called for eachIJavaElementbeforeprocessElement.Methods inherited from class org.aspectj.org.eclipse.jdt.internal.core.MultiOperation
error, executeOperation, getDestinationParent, getNewNameFor, isMove, isRename, setInsertBefore, setRenamings, verifyDestination, verifyRenaming, verifySiblingMethods 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, getSubProgressMonitor, hasModifiedResource, internalWorked, isCanceled, isReadOnly, isTopLevelOperation, moveResources, newJavaElementDelta, popOperation, postAction, prefixesOneOf, pushOperation, removeAllPostAction, removeReconcileDelta, run, runOperation, runPostActions, setAttribute, setCanceled, setNested, setTaskName, subTask, 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
-
createdElements
The list of new resources created during this operation. -
deltasPerProject
Table specifying deltas for elements being copied/moved/renamed. Keyed by elements' project(s), and values are the corresponding deltas. -
parser
TheASTParserused to manipulate the source code ofICompilationUnit.
-
-
Constructor Details
-
CopyResourceElementsOperation
public CopyResourceElementsOperation(IJavaElement[] resourcesToCopy, IJavaElement[] destContainers, boolean force) When executed, this operation will copy the given resources to the given containers. The resources and destination containers must be in the correct order. If there is > 1 destination, the number of destinations must be the same as the number of resources being copied/moved.
-
-
Method Details
-
getMainTaskName
Description copied from class:MultiOperationReturns the name to be used by the progress monitor.- Specified by:
getMainTaskNamein classMultiOperation- See Also:
-
getSchedulingRule
protected org.eclipse.core.runtime.jobs.ISchedulingRule getSchedulingRule()- Overrides:
getSchedulingRulein classJavaModelOperation
-
prepareDeltas
protected void prepareDeltas(IJavaElement sourceElement, IJavaElement destinationElement, boolean isMove, boolean overWriteCU) Sets the deltas to register the changes resulting from this operation for this source element and its destination. If the operation is a cross project operation- On a copy, the delta should be rooted in the dest project
- On a move, two deltas are generated
- one rooted in the source project
- one rooted in the destination project
- When a CU is being overwritten, the delta on the destination will be of type F_CONTENT
-
processDeltas
protected void processDeltas()Process all of the changed deltas generated by this operation. -
processElement
Description copied from class:MultiOperationSubclasses must implement this method to process a givenIJavaElement.- Specified by:
processElementin classMultiOperation- Throws:
JavaModelException- See Also:
-
processElements
Description copied from class:MultiOperationProcesses all theIJavaElements in turn, collecting errors and updating the progress monitor.- Overrides:
processElementsin classMultiOperation- Throws:
JavaModelException- if one or several operation(s) was unable to be completed.- See Also:
-
verify
Possible failures:- NO_ELEMENTS_TO_PROCESS - no elements supplied to the operation
- INDEX_OUT_OF_BOUNDS - the number of renamings supplied to the operation does not match the number of elements that were supplied.
- Overrides:
verifyin classJavaModelOperation- See Also:
-
verify
Description copied from class:MultiOperationThis method is called for eachIJavaElementbeforeprocessElement. It should check that thiselementcan be processed.- Specified by:
verifyin classMultiOperation- Throws:
JavaModelException- See Also:
-