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
Modifier and TypeFieldDescriptionprotected ArrayList
The list of new resources created during this operation.protected Map
Table specifying deltas for elements being copied/moved/renamed.protected ASTParser
TheASTParser
used to manipulate the source code ofICompilationUnit
.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
Fields inherited from interface org.eclipse.core.runtime.IProgressMonitor
UNKNOWN
Fields 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
ConstructorDescriptionCopyResourceElementsOperation(IJavaElement[] resourcesToCopy, IJavaElement[] destContainers, boolean force)
When executed, this operation will copy the given resources to the given containers. -
Method Summary
Modifier and TypeMethodDescriptionprotected String
Returns the name to be used by the progress monitor.protected org.eclipse.core.runtime.jobs.ISchedulingRule
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.protected void
Process all of the changed deltas generated by this operation.protected void
processElement(IJavaElement element)
Subclasses must implement this method to process a givenIJavaElement
.protected void
Processes all theIJavaElement
s in turn, collecting errors and updating the progress monitor.protected IJavaModelStatus
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.protected void
verify(IJavaElement element)
This method is called for eachIJavaElement
beforeprocessElement
.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, 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, worked
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods 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
TheASTParser
used 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:MultiOperation
Returns the name to be used by the progress monitor.- Specified by:
getMainTaskName
in classMultiOperation
- See Also:
MultiOperation
-
getSchedulingRule
protected org.eclipse.core.runtime.jobs.ISchedulingRule getSchedulingRule()- Overrides:
getSchedulingRule
in 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:MultiOperation
Subclasses must implement this method to process a givenIJavaElement
.- Specified by:
processElement
in classMultiOperation
- Throws:
JavaModelException
- See Also:
This method delegates to processCompilationUnitResource or processPackageFragmentResource, depending on the type of element.
-
processElements
Description copied from class:MultiOperation
Processes all theIJavaElement
s in turn, collecting errors and updating the progress monitor.- Overrides:
processElements
in classMultiOperation
- Throws:
JavaModelException
- if one or several operation(s) was unable to be completed.- See Also:
Overridden to allow special processing of JavaElementDeltas and fResultElements.
-
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:
verify
in classJavaModelOperation
- See Also:
IJavaModelStatus
-
verify
Description copied from class:MultiOperation
This method is called for eachIJavaElement
beforeprocessElement
. It should check that thiselement
can be processed.- Specified by:
verify
in classMultiOperation
- Throws:
JavaModelException
- See Also:
MultiOperation
-