|
|||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectorg.eclipse.emf.common.command.AbstractCommand
org.eclipse.emf.edit.command.AbstractOverrideableCommand
org.eclipse.emf.edit.command.RemoveCommand
The remove command logically acts upon an owner object that has a collection-type feature from which objects can be removed.
The static create methods delegate command creation to EditingDomain.createCommand
,
which may or may not result in the actual creation of an instance of this class.
The implementation of this class is low-level and EMF specific; it allows one or more objects to be removed from a many-valued feature of an owner. i.e., it is almost equivalent of the call
((EList)((EObject)owner).eGet((EStructuralFeature)feature)).removeAll((Collection)collection);
It can also be used as a near-equivalent to the call
((EList)extent).removeAll((Collection)collection);which is how root objects are removed from the contents of a resource.
The one difference is that, while EList.removeAll(Collection)
removes all values equal to a value in
the collection, this command will remove no more than one value per value in the collection. When duplicates are
allowed and present in the list, this command will first look for identical (==
) values, in order, and
failing that, equal values (.equals()
).
Like all the low-level comands in this package, the remove command is undoable.
A remove command is an OverrideableCommand
.
Nested Class Summary |
Nested classes inherited from class org.eclipse.emf.common.command.AbstractCommand |
AbstractCommand.NonDirtying |
Field Summary | |
protected Collection |
affectedObjects
The is the value returned by Command.getAffectedObjects() .
|
protected Collection |
collection
This is the collection of objects being removed. |
protected static String |
DESCRIPTION
This caches the description. |
protected static 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[] |
indices
These are the indices at which to reinsert the removed objects during an undo so as to achieve the original list order. |
protected static String |
LABEL
This caches the label. |
protected EObject |
owner
This is the owner object upon which the command will act. |
protected EList |
ownerList
This is the list from which the command will remove. |
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 | |
RemoveCommand(EditingDomain domain,
EList list,
Collection collection)
This constructs a primitive command to remove a collection of values from the specified extent. |
|
RemoveCommand(EditingDomain domain,
EList list,
Object value)
This constructs a primitive command to remove a particular value from the specified extent. |
|
RemoveCommand(EditingDomain domain,
EObject owner,
EStructuralFeature feature,
Collection collection)
This constructs a primitive command to remove a collection of values from the specified feature of the owner. |
|
RemoveCommand(EditingDomain domain,
EObject owner,
EStructuralFeature feature,
Object value)
This constructs a primitive command to remove a particular value from the specified feature of the owner. |
Method Summary | |
protected boolean |
contains(int[] values,
int target)
Returns whether the given int array contains the given target value. |
protected boolean |
containsExact(Collection collection,
Object target)
Returns whether the given collection contains the given target object itself (according to ==, not .equals()). |
static Command |
create(EditingDomain domain,
Collection collection)
This creates a command to remove multiple objects. |
static Command |
create(EditingDomain domain,
Object value)
This creates a command to remove an object. |
static Command |
create(EditingDomain domain,
Object owner,
Object feature,
Collection collection)
This creates a command to remove a collection of values from the specified feature of the owner. |
static Command |
create(EditingDomain domain,
Object owner,
Object feature,
Object value)
This creates a command to remove a particular value from the specified feature of the owner. |
void |
doExecute()
This is overrideable command's implementation of execute. |
Collection |
doGetAffectedObjects()
This is overrideable command's implementation of getAffectedObjects. |
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. |
Collection |
getCollection()
This returns the collection of objects being removed. |
EStructuralFeature |
getFeature()
This returns the feature of the owner object upon the command will act. |
int[] |
getIndices()
These returns the indices at which to reinsert the removed objects during an undo so as to achieve the original list order. |
EObject |
getOwner()
This returns the owner object upon which the command will act. |
EList |
getOwnerList()
This returns the list from which the command will remove. |
protected void |
merge(List objects1,
int[] indices1,
List objects2,
int[] indices2)
Merges two sets of object lists and index arrays, such that both are ordered by increasing indices. |
protected boolean |
prepare()
Called at most once in AbstractOverrideableCommand.canExecute() to give the command an opportunity to ready itself for execution.
|
protected boolean |
removeExact(Collection collection,
Object target)
Removes the first occurence of the given target object, itself, from the collection. |
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 |
protected static final String LABEL
protected static final String DESCRIPTION
protected static final String DESCRIPTION_FOR_LIST
protected EObject owner
EList
.
protected EStructuralFeature feature
EList
.
protected EList ownerList
protected Collection collection
protected int[] indices
protected Collection affectedObjects
Command.getAffectedObjects()
.
The affected objects are different after an execute than after an undo, so we record it.
Constructor Detail |
public RemoveCommand(EditingDomain domain, EObject owner, EStructuralFeature feature, Object value)
public RemoveCommand(EditingDomain domain, EObject owner, EStructuralFeature feature, Collection collection)
public RemoveCommand(EditingDomain domain, EList list, Object value)
public RemoveCommand(EditingDomain domain, EList list, Collection collection)
Method Detail |
public static Command create(EditingDomain domain, Object value)
public static Command create(EditingDomain domain, Object owner, Object feature, Object value)
public static Command create(EditingDomain domain, Collection collection)
public static Command create(EditingDomain domain, Object owner, Object feature, Collection collection)
public EObject getOwner()
EList
.
public EStructuralFeature getFeature()
EList
.
public EList getOwnerList()
public Collection getCollection()
public int[] getIndices()
protected boolean prepare()
AbstractCommand
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.
prepare
in class AbstractCommand
public void doExecute()
OverrideableCommand
doExecute
in interface OverrideableCommand
doExecute
in class AbstractOverrideableCommand
protected boolean containsExact(Collection collection, Object target)
protected boolean contains(int[] values, int target)
protected boolean removeExact(Collection collection, Object target)
protected void merge(List objects1, int[] indices1, List objects2, int[] indices2)
collection
and indices
. The two input sets must already be in increasing index
order, with the corresponding object-index pairs in the same positions.
public void doUndo()
OverrideableCommand
doUndo
in interface OverrideableCommand
doUndo
in class AbstractOverrideableCommand
public void doRedo()
OverrideableCommand
doRedo
in interface OverrideableCommand
doRedo
in class AbstractOverrideableCommand
public Collection doGetResult()
OverrideableCommand
doGetResult
in interface OverrideableCommand
doGetResult
in class AbstractOverrideableCommand
public Collection doGetAffectedObjects()
OverrideableCommand
doGetAffectedObjects
in interface OverrideableCommand
doGetAffectedObjects
in class AbstractOverrideableCommand
public String toString()
toString
in class AbstractOverrideableCommand
|
Copyright 2001-2006 IBM Corporation and others. All Rights Reserved. |
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |