Class CopyElementsOperation
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.CopyElementsOperation
- All Implemented Interfaces:
SuffixConstants,org.eclipse.core.resources.IWorkspaceRunnable,org.eclipse.core.runtime.ICoreRunnable,org.eclipse.core.runtime.IProgressMonitor
- Direct Known Subclasses:
MoveElementsOperation
This operation copies/moves a collection of elements from their current
container to a new container, optionally renaming the
elements.
Notes:
- If there is already an element 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 constructors are copied to a type, the constructors are automatically renamed to the name of the destination type.
- When main types are renamed (move within the same parent), the compilation unit and constructors are automatically renamed
- The collection of elements being copied must all share the same type of container (for example, must all be type members).
- The elements are inserted in the new container in the order given.
- The elements can be positioned in the new container - see #setInsertBefore. By default, the elements are inserted based on the default positions as specified in the creation operation for that element type.
- This operation can be used to copy and rename elements within the same container.
- This operation only copies elements contained within compilation units.
-
Nested Class Summary
Nested classes/interfaces inherited from class org.aspectj.org.eclipse.jdt.internal.core.JavaModelOperation
JavaModelOperation.IPostAction -
Field Summary
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
ConstructorsConstructorDescriptionCopyElementsOperation(IJavaElement[] elementsToCopy, IJavaElement[] destContainers, boolean force) When executed, this operation will copy the given elements to the given containers.CopyElementsOperation(IJavaElement[] elementsToCopy, IJavaElement destContainer, boolean force) When executed, this operation will copy the given elements to the given container. -
Method Summary
Modifier and TypeMethodDescriptionprotected StringReturns theStringto use as the main task name for progress monitoring.protected JavaModelOperationgetNestedOperation(IJavaElement element) Returns the nested operation to use for processing this elementprotected booleanisRenamingMainType(IJavaElement element, IJavaElement dest) Returnstrueif this element is the main type of its compilation unit.protected voidprocessElement(IJavaElement element) Copy/move the element from the source to destination, renaming the elements as specified, honoring the collision policy.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, processElements, 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, getSchedulingRule, 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
-
Constructor Details
-
CopyElementsOperation
public CopyElementsOperation(IJavaElement[] elementsToCopy, IJavaElement[] destContainers, boolean force) When executed, this operation will copy the given elements to the given containers. The elements 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 elements being copied/moved/renamed. -
CopyElementsOperation
public CopyElementsOperation(IJavaElement[] elementsToCopy, IJavaElement destContainer, boolean force) When executed, this operation will copy the given elements to the given container.
-
-
Method Details
-
getMainTaskName
Returns theStringto use as the main task name for progress monitoring.- Specified by:
getMainTaskNamein classMultiOperation
-
getNestedOperation
Returns the nested operation to use for processing this element -
isRenamingMainType
protected boolean isRenamingMainType(IJavaElement element, IJavaElement dest) throws JavaModelException Returnstrueif this element is the main type of its compilation unit.- Throws:
JavaModelException
-
processElement
Copy/move the element from the source to destination, renaming the elements as specified, honoring the collision policy.- Specified by:
processElementin classMultiOperation- Throws:
JavaModelException- if the operation is unable to be completed
-
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:
-