## org.eclipse.emf.common.command
Class CommandWrapper

    java.lang.Object
      org.eclipse.emf.common.command.AbstractCommand
          org.eclipse.emf.common.command.CommandWrapper

All Implemented Interfaces:
  Command

Direct Known Subclasses:
  ControlAction.SelfAffectingCommand, CreateChildCommand, CreateMappingAction.DelegateCommand, CreateOneSidedMappingAction.DelegateCommand, CutToClipboardCommand, DelegatingWrapperItemProvider.AffectedObjectsWrappingCommand, ItemProviderAdapter.ResultAndAffectedObjectsWrappingCommand, RemoveMappingAction.CommandDelegate, WrapperItemProvider.ReplacementAffectedObjectCommand, WrapperItemProvider.WrappingCopyCommand

    public class CommandWrapper

extends AbstractCommand

A command that wraps another command. All the `Command` methods are delegated to the wrapped command.

There are two typical usage patterns. One typical use for this command is to modify the behaviour of a command that you can't subclass, i.e., a decorator pattern:

       Command decoratedCommand =
         new CommandWrapper(someOtherCommand)
         {
           public void execute()
           {
             doSomethingBeforeExecution();
             super.execute();
             doSomethingAfterExecution();
           }
           public Collection getResult()
           {
             return someOtherResult();
           }
         };

The other typical use is to act as a proxy for a command who's creation is delayed:

       Command proxyCommand =
         new CommandWrapper()
         {
           public Command createCommand()
           {
             return createACommandSomehow();
           }
         };

Nested Class Summary

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

Field Summary
`protected Command` `command` The command for which this is a proxy or decorator.

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

Constructor Summary
`protected` `CommandWrapper()` Creates a commandless proxy instance.
`` `CommandWrapper(Command command)` Creates a decorator instance for the given command.
`protected` `CommandWrapper(java.lang.String label)` Creates a commandless proxy instance, with the given label.
`protected` `CommandWrapper(java.lang.String label, Command command)` Creates a decorator instance with the given label for the given command.
`protected` `CommandWrapper(java.lang.String label, java.lang.String description)` Creates a commandless proxy instance, with the given label and description.
`` `CommandWrapper(java.lang.String label, java.lang.String description, Command command)` Creates a decorator instance with the given label and description for the given command.

Method Summary
`boolean` `canUndo()` Delegates to the canUndo method of the command.
`protected Command` `createCommand()` Create the command being proxied.
`void` `dispose()` Delegates to the dispose method of the command.
`void` `execute()` Delegates to the execute method of the command.
`java.util.Collection<?>` `getAffectedObjects()` Delegates to the getAffectedObjects method of the command.
`Command` `getCommand()` Returns the command for which this is a proxy or decorator.
`java.lang.String` `getDescription()` Delegates to the getDescription method of the command.
`java.lang.String` `getLabel()` Delegates to the getLabel method of the command.
`java.util.Collection<?>` `getResult()` Delegates to the getResult method of the command.
`protected boolean` `prepare()` Returns whether the command can execute.
`void` `redo()` Delegates to the redo method of the command.
`java.lang.String` `toString()` Returns an abbreviated name using this object's own class' name, without package qualification, followed by a space separated list of `field:value` pairs.
`void` `undo()` Delegates to the undo method of the command.

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

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

Field Detail

### command

    protected Command command

  The command for which this is a proxy or decorator.

Constructor Detail

### CommandWrapper

    public CommandWrapper(Command command)

  Creates a decorator instance for the given command.

  Parameters:
    `command` - the command to wrap.

### CommandWrapper

    protected CommandWrapper(java.lang.String label,
                             Command command)

  Creates a decorator instance with the given label for the given command.

  Parameters:
    `label` - the label of the wrapper
    `command` - the command to wrap.

### CommandWrapper

    public CommandWrapper(java.lang.String label,
                          java.lang.String description,
                          Command command)

  Creates a decorator instance with the given label and description for the given command.

  Parameters:
    `label` - the label of the wrapper
    `description` - the description of the wrapper
    `command` - the command to wrap.

### CommandWrapper

    protected CommandWrapper()

  Creates a commandless proxy instance. The wrapped command will be created by a `createCommand()` callback. Since a proxy command like this is pointless unless you override some method, this constructor is protected.

### CommandWrapper

    protected CommandWrapper(java.lang.String label)

  Creates a commandless proxy instance, with the given label. The command will be created by a `createCommand()` callback. Since a proxy command like this is pointless unless you override some method, this constructor is protected.

  Parameters:
    `label` - the label of the wrapper

### CommandWrapper

    protected CommandWrapper(java.lang.String label,
                             java.lang.String description)

  Creates a commandless proxy instance, with the given label and description. The command will be created by a `createCommand()` callback. Since a proxy command like this is pointless unless you override some method, this constructor is protected.

  Parameters:
    `label` - the label of the wrapper
    `description` - the description of the wrapper

Method Detail

### getCommand

    public Command getCommand()

  Returns the command for which this is a proxy or decorator. This may be `null` before `createCommand()` is called.

  Returns:
    the command for which this is a proxy or decorator.

### createCommand

    protected Command createCommand()

  Create the command being proxied. This implementation just return `null`. It is called by `prepare()`.

  Returns:
    the command being proxied.

### prepare

    protected boolean prepare()

  Returns whether the command can execute. This implementation creates the command being proxied using `createCommand()`, if the command wasn't given in the constructor.

  Overrides:
    `prepare` in class `AbstractCommand`
  Returns:
    whether the command can execute.

### execute

    public void execute()

  Delegates to the execute method of the command.

### canUndo

    public boolean canUndo()

  Delegates to the canUndo method of the command.

  Specified by:
    `canUndo` in interface `Command`
  Overrides:
    `canUndo` in class `AbstractCommand`
  Returns:
    `true`.

### undo

    public void undo()

  Delegates to the undo method of the command.

  Specified by:
    `undo` in interface `Command`
  Overrides:
    `undo` in class `AbstractCommand`

### redo

    public void redo()

  Delegates to the redo method of the command.

### getResult

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

  Delegates to the getResult method of the command.

  Specified by:
    `getResult` in interface `Command`
  Overrides:
    `getResult` in class `AbstractCommand`
  Returns:
    the result.

### getAffectedObjects

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

  Delegates to the getAffectedObjects method of the command.

  Specified by:
    `getAffectedObjects` in interface `Command`
  Overrides:
    `getAffectedObjects` in class `AbstractCommand`
  Returns:
    the result.

### getLabel

    public java.lang.String getLabel()

  Delegates to the getLabel method of the command.

  Specified by:
    `getLabel` in interface `Command`
  Overrides:
    `getLabel` in class `AbstractCommand`
  Returns:
    the label.

### getDescription

    public java.lang.String getDescription()

  Delegates to the getDescription method of the command.

  Specified by:
    `getDescription` in interface `Command`
  Overrides:
    `getDescription` in class `AbstractCommand`
  Returns:
    the description.

### dispose

    public void dispose()

  Delegates to the dispose method of the command.

  Specified by:
    `dispose` in interface `Command`
  Overrides:
    `dispose` in class `AbstractCommand`

### toString

    public java.lang.String toString()

  Description copied from class: `AbstractCommand`
  Returns 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 `AbstractCommand`
  Returns:
    string representation.

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