Runtime

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

java.lang.Object
  extended by org.eclipse.core.commands.operations.AbstractOperation
      extended by org.eclipse.emf.workspace.AbstractEMFOperation
          extended by org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand
              extended by org.eclipse.gmf.runtime.emf.type.core.commands.EditElementCommand
                  extended by 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, canUndo, didCommit, dispose, execute, getChange, getEditingDomain, getOptions, redo, 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.