Runtime

## org.eclipse.gmf.runtime.emf.type.core.commands
Class DestroyElementCommand

    java.lang.Object
      org.eclipse.core.commands.operations.AbstractOperation
          org.eclipse.emf.workspace.AbstractEMFOperation
              org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand
                  org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand
                      org.eclipse.gmf.runtime.emf.type.core.commands.DestroyElementCommand

All Implemented Interfaces:
  IUndoableOperation, ICommand, org.eclipse.gmf.runtime.common.core.internal.command.ICommandWithSettableResult

    public class DestroyElementCommand

extends EditElementCommand

Command to create a model element using the EMF action protocol.

Constructor Summary
`DestroyElementCommand(DestroyElementRequest request)` Constructs a new command to destroy a model element.

Method Summary
`boolean` `canExecute()` Checks that the element to be modified by this command is of the correct kind.
`static void` `destroy(org.eclipse.emf.ecore.EObject eObject)` Convenience method for destroying the specified object by executing a `DestroyElementCommand` on it, if it is attached to a resource.
`protected CommandResult` `doExecuteWithResult(IProgressMonitor monitor, IAdaptable info)` Implemented by subclasses to perform the model changes.
`protected org.eclipse.emf.ecore.EObject` `getElementToDestroy()` Gets the element to be destroyed.
`protected void` `tearDownIncomingReferences(org.eclipse.emf.ecore.EObject destructee)` Tears down references to the object that we are destroying, from all other objects in the resource set.
`protected void` `tearDownOutgoingReferences(org.eclipse.emf.ecore.EObject destructee)` Tears down outgoing unidirectional references from the object being destroyed to all other elements in the resource set.

Methods inherited from class org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand
`getAffectedFiles, getEClass, getEClassToEdit, getElementToEdit, getRequest, isOK, setEClass, setElementToEdit`

Methods inherited from class org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand
`aggregateStatuses, cleanup, compose, didRedo, didUndo, doExecute, doRedo, doUndo, getAffectedFiles, getCommandResult, getWorkspaceFiles, getWorkspaceFiles, internalSetResult, reduce, setResult`

Methods inherited from class org.eclipse.emf.workspace.AbstractEMFOperation
`canRedo, canSetOptions, canUndo, didCommit, dispose, execute, getChange, getEditingDomain, getOptions, isReuseParentTransaction, redo, setOptions, setReuseParentTransaction, undo`

Methods inherited from class org.eclipse.core.commands.operations.AbstractOperation
`addContext, getContexts, getLabel, hasContext, removeContext, setLabel, toString`

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

Methods inherited from interface org.eclipse.gmf.runtime.common.core.command.ICommand
`setLabel`

Methods inherited from interface org.eclipse.core.commands.operations.IUndoableOperation
`addContext, canRedo, canUndo, dispose, execute, getContexts, getLabel, hasContext, redo, removeContext, undo`

Constructor Detail

### DestroyElementCommand

    public DestroyElementCommand(DestroyElementRequest request)

  Constructs a new command to destroy a model element.

  Parameters:
    `request` - the destroy element request

Method Detail

### destroy

    public static void destroy(org.eclipse.emf.ecore.EObject eObject)

  Convenience method for destroying the specified object by executing a `DestroyElementCommand` on it, if it is attached to a resource. Detached elements cannot be destroyed.

  Note that the command will not be executed on the operation history.

  Parameters:
    `eObject` - an element to destroy

### doExecuteWithResult

    protected CommandResult doExecuteWithResult(IProgressMonitor monitor,
                                                IAdaptable info)
                                         throws ExecutionException

  Description copied from class: `AbstractTransactionalCommand`
  Implemented by subclasses to perform the model changes. These changes are applied by manipulation of the EMF metamodel's API, not by executing commands on the editing domain's command stack.

  Specified by:
    `doExecuteWithResult` in class `AbstractTransactionalCommand`
  Parameters:
    `monitor` - the progress monitor provided by the operation history
    `info` - the adaptable provided by the operation history
  Returns:
    the result of the execution
  Throws:
    `ExecutionException` - if, for some reason, I fail to complete the operation

### tearDownIncomingReferences

    protected void tearDownIncomingReferences(org.eclipse.emf.ecore.EObject destructee)

  Tears down references to the object that we are destroying, from all other objects in the resource set.

  Parameters:
    `destructee` - the object being destroyed

### tearDownOutgoingReferences

    protected void tearDownOutgoingReferences(org.eclipse.emf.ecore.EObject destructee)

  Tears down outgoing unidirectional references from the object being destroyed to all other elements in the resource set. This is required so that reverse-reference queries will not find the destroyed object.

  Parameters:
    `destructee` - the object being destroyed

### getElementToDestroy

    protected org.eclipse.emf.ecore.EObject getElementToDestroy()

  Gets the element to be destroyed.

  Returns:
    the element to be destroyed

### canExecute

    public boolean canExecute()

  Description copied from class: `EditElementCommand`
  Checks that the element to be modified by this command is of the correct kind.

  Specified by:
    `canExecute` in interface `IUndoableOperation`
  Overrides:
    `canExecute` in class `EditElementCommand`

Runtime

Guidelines for using Eclipse APIs.

Copyright (c) IBM Corp., Borland Software Corp., and others 2005,2006. All rights reserved.