## org.eclipse.emf.edit.command
Class MoveCommand

    java.lang.Object
      org.eclipse.emf.common.command.AbstractCommand
          org.eclipse.emf.edit.command.AbstractOverrideableCommand
              org.eclipse.emf.edit.command.MoveCommand

All Implemented Interfaces:
  Command, OverrideableCommand

    public class MoveCommand

extends AbstractOverrideableCommand

The move command logically acts upon an owner object that has a collection-based feature containing an object that is to be moved to a new position within the collection. The static create method delegates command creation to `EditingDomain.createCommand`, which may or may not result in the actual creation of an instance of this class. Like all the low level commands in this package, the move command is undoable.

The implementation of this class is low-level and EMF specific; it allows an object to be moved to a new position within a many-valued feature of an owner, i.e., it is equivalent of the call

       ((EList)((EObject)owner).eGet((EStructuralFeature)feature)).move(index, object);

It can also be used as an equivalent to the call

       ((EList)extent).move(index, object);

which is how root objects are moved within the contents of a resource. Like all the low-level commands in this package, the move command is undoable.

A move command is an `OverrideableCommand`.

Nested Class Summary

Nested classes/interfaces inherited from class org.eclipse.emf.common.command.AbstractCommand
`AbstractCommand.NonDirtying`

Field Summary
`protected static java.lang.String` `DESCRIPTION` This caches the description.
`protected static java.lang.String` `DESCRIPTION_FOR_LIST` This caches the description for a list-based command.
`protected EStructuralFeature` `feature` This is the feature of the owner object upon the command will act.
`protected int` `index` This is the position to which the object will be moved.
`protected static java.lang.String` `LABEL` This caches the label.
`protected int` `oldIndex` This is the orginal position to which the object will be moved upon undo.
`protected EObject` `owner` This is the owner object upon which the command will act.
`protected EList<java.lang.Object>` `ownerList` This is the list in which the command will move an object.
`protected java.lang.Object` `value` This is the value being moved within the owner list.

Fields inherited from class org.eclipse.emf.edit.command.AbstractOverrideableCommand
`domain, overrideCommand`

Fields inherited from class org.eclipse.emf.common.command.AbstractCommand
`description, isExecutable, isPrepared, label`

Constructor Summary
`MoveCommand(EditingDomain domain, EList<?> list, java.lang.Object value, int index)` This constructs a primitive command to move a particular value to a particular index of the specified extent.
`MoveCommand(EditingDomain domain, EObject owner, EStructuralFeature feature, java.lang.Object value, int index)` This constructs a primitive command to move a particular value to a particular index of the specified many-valued feature of the owner.

Method Summary
`static Command` `create(EditingDomain domain, java.lang.Object owner, java.lang.Object feature, java.lang.Object value, int index)` This creates a command to move particular value to a particular index in the specified feature of the owner.
`void` `doExecute()` This is overrideable command's implementation of execute.
`java.util.Collection<?>` `doGetAffectedObjects()` This is overrideable command's implementation of getAffectedObjects.
`java.util.Collection<?>` `doGetResult()` This is overrideable command's implementation of getResult.
`void` `doRedo()` This is overrideable command's implementation of redo.
`void` `doUndo()` This is overrideable command's implementation of undo.
`EStructuralFeature` `getFeature()` This returns the feature of the owner object upon the command will act.
`int` `getIndex()` This returns the position to which the value will be moved.
`int` `getOldIndex()` This returns the original position to which the object will be moved upon undo.
`EObject` `getOwner()` This returns the owner object upon which the command will act.
`EList<java.lang.Object>` `getOwnerList()` This returns the list in which the command will move an object.
`java.lang.Object` `getValue()` This returns the value being moved.
`protected boolean` `prepare()` Called at most once in `AbstractCommand.canExecute()` to give the command an opportunity to ready itself for execution.
`java.lang.String` `toString()` This gives an abbreviated name using this object's own class' name, without package qualification, followed by a space separated list of `field:value` pairs.

Methods inherited from class org.eclipse.emf.edit.command.AbstractOverrideableCommand
`canExecute, canUndo, dispose, doCanExecute, doCanUndo, doDispose, doGetChildrenToCopy, doGetDescription, doGetLabel, execute, getAffectedObjects, getChildrenToCopy, getDescription, getDomain, getLabel, getOverride, getOwnerList, getResult, redo, setOverride, undo`

Methods inherited from class org.eclipse.emf.common.command.AbstractCommand
`chain, setDescription, setLabel`

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

Methods inherited from interface org.eclipse.emf.common.command.Command
`chain`

Field Detail

### LABEL

    protected static final java.lang.String LABEL

  This caches the label.

### DESCRIPTION

    protected static final java.lang.String DESCRIPTION

  This caches the description.

### DESCRIPTION_FOR_LIST

    protected static final java.lang.String DESCRIPTION_FOR_LIST

  This caches the description for a list-based command.

### owner

    protected EObject owner

  This is the owner object upon which the command will act. It could be null in the case that we are dealing with an `EList`.

### feature

    protected EStructuralFeature feature

  This is the feature of the owner object upon the command will act. It could be null, in the case that we are dealing with an `EList`.

### ownerList

    protected EList<java.lang.Object> ownerList

  This is the list in which the command will move an object.

### value

    protected java.lang.Object value

  This is the value being moved within the owner list.

### index

    protected int index

  This is the position to which the object will be moved.

### oldIndex

    protected int oldIndex

  This is the orginal position to which the object will be moved upon undo.

Constructor Detail

### MoveCommand

    public MoveCommand(EditingDomain domain,
                       EObject owner,
                       EStructuralFeature feature,
                       java.lang.Object value,
                       int index)

  This constructs a primitive command to move a particular value to a particular index of the specified many-valued feature of the owner.

### MoveCommand

    public MoveCommand(EditingDomain domain,
                       EList<?> list,
                       java.lang.Object value,
                       int index)

  This constructs a primitive command to move a particular value to a particular index of the specified extent.

Method Detail

### create

    public static Command create(EditingDomain domain,
                                 java.lang.Object owner,
                                 java.lang.Object feature,
                                 java.lang.Object value,
                                 int index)

  This creates a command to move particular value to a particular index in the specified feature of the owner. The feature will often be null because the domain will deduce it.

### getOwner

    public EObject getOwner()

  This returns the owner object upon which the command will act. It could be null in the case that we are dealing with an `EList`.

### getFeature

    public EStructuralFeature getFeature()

  This returns the feature of the owner object upon the command will act. It could be null, in the case that we are dealing with an `EList`.

### getOwnerList

    public EList<java.lang.Object> getOwnerList()

  This returns the list in which the command will move an object.

### getValue

    public java.lang.Object getValue()

  This returns the value being moved.

### getIndex

    public int getIndex()

  This returns the position to which the value will be moved.

### getOldIndex

    public int getOldIndex()

  This returns the original position to which the object will be moved upon undo.

### prepare

    protected boolean prepare()

  Description copied from class: `AbstractCommand`
  Called at most once in `AbstractCommand.canExecute()` to give the command an opportunity to ready itself for execution. The returned value is stored in `AbstractCommand.canExecute()`. In other words, you can override this method to initialize and to yield a cached value for the all subsequent calls to canExecute.

  Overrides:
    `prepare` in class `AbstractCommand`
  Returns:
    whether the command is executable.

### doExecute

    public void doExecute()

  Description copied from interface: `OverrideableCommand`
  This is overrideable command's implementation of execute.

  Specified by:
    `doExecute` in interface `OverrideableCommand`
  Specified by:
    `doExecute` in class `AbstractOverrideableCommand`

### doUndo

    public void doUndo()

  Description copied from interface: `OverrideableCommand`
  This is overrideable command's implementation of undo.

  Specified by:
    `doUndo` in interface `OverrideableCommand`
  Specified by:
    `doUndo` in class `AbstractOverrideableCommand`

### doRedo

    public void doRedo()

  Description copied from interface: `OverrideableCommand`
  This is overrideable command's implementation of redo.

  Specified by:
    `doRedo` in interface `OverrideableCommand`
  Specified by:
    `doRedo` in class `AbstractOverrideableCommand`

### doGetResult

    public java.util.Collection<?> doGetResult()

  Description copied from interface: `OverrideableCommand`
  This is overrideable command's implementation of getResult.

  Specified by:
    `doGetResult` in interface `OverrideableCommand`
  Overrides:
    `doGetResult` in class `AbstractOverrideableCommand`

### doGetAffectedObjects

    public java.util.Collection<?> doGetAffectedObjects()

  Description copied from interface: `OverrideableCommand`
  This is overrideable command's implementation of getAffectedObjects.

  Specified by:
    `doGetAffectedObjects` in interface `OverrideableCommand`
  Overrides:
    `doGetAffectedObjects` in class `AbstractOverrideableCommand`

### toString

    public java.lang.String toString()

  This gives an abbreviated name using this object's own class' name, without package qualification, followed by a space separated list of `field:value` pairs.

  Overrides:
    `toString` in class `AbstractOverrideableCommand`
  Returns:
    string representation.

Copyright 2001-2006 IBM Corporation and others. All Rights Reserved.