org.eclipse.emf.transaction.util
Class CompositeChangeDescription

java.lang.Object
  extended by org.eclipse.emf.common.notify.impl.BasicNotifierImpl
      extended by org.eclipse.emf.ecore.impl.BasicEObjectImpl
          extended by org.eclipse.emf.ecore.impl.EObjectImpl
              extended by org.eclipse.emf.ecore.change.impl.ChangeDescriptionImpl
                  extended by org.eclipse.emf.transaction.util.CompositeChangeDescription
All Implemented Interfaces:
Notifier, ChangeDescription, EObject, InternalEObject, TransactionChangeDescription

public class CompositeChangeDescription
extends ChangeDescriptionImpl
implements TransactionChangeDescription

A composition of zero or more change descriptions representing the changes performed by transactions in a possibly nested structure. In the execution of a transaction, the changes that it makes in between nested transactions and the changes made by those nested transactions are stored as discrete ChangeDescriptions in a composite. The composite structure is recursive.


Nested Class Summary
 
Nested classes/interfaces inherited from class org.eclipse.emf.ecore.change.impl.ChangeDescriptionImpl
ChangeDescriptionImpl.OldContainmentInformation
 
Nested classes/interfaces inherited from class org.eclipse.emf.ecore.impl.BasicEObjectImpl
BasicEObjectImpl.EPropertiesHolder, BasicEObjectImpl.EPropertiesHolderBaseImpl, BasicEObjectImpl.EPropertiesHolderImpl
 
Nested classes/interfaces inherited from class org.eclipse.emf.common.notify.impl.BasicNotifierImpl
BasicNotifierImpl.EAdapterList<E extends Object & Adapter>
 
Nested classes/interfaces inherited from interface org.eclipse.emf.ecore.InternalEObject
InternalEObject.EStore
 
Field Summary
 
Fields inherited from class org.eclipse.emf.ecore.change.impl.ChangeDescriptionImpl
objectChanges, objectsToAttach, objectsToDetach, oldContainmentInformation, resourceChanges
 
Fields inherited from class org.eclipse.emf.ecore.impl.EObjectImpl
eAdapters, eContainer, eContainerFeatureID, EDELIVER, EDYNAMIC_CLASS, eFlags, ELAST_EOBJECT_FLAG, ELAST_NOTIFIER_FLAG, eProperties, EPROXY
 
Fields inherited from class org.eclipse.emf.ecore.impl.BasicEObjectImpl
EVIRTUAL_GET, EVIRTUAL_IS_SET, EVIRTUAL_NO_VALUE, EVIRTUAL_SET, EVIRTUAL_UNSET
 
Fields inherited from interface org.eclipse.emf.ecore.InternalEObject
EOPPOSITE_FEATURE_BASE
 
Constructor Summary
CompositeChangeDescription()
           
 
Method Summary
 void add(ChangeDescription change)
          Adds a change description to me.
 void apply()
           
 void applyAndReverse()
           
 boolean canApply()
          I can apply myself if all of my composed changes can apply themselves.
 void clear()
          Removes any change descriptions that I may have.
 EMap<EObject,EList<FeatureChange>> getObjectChanges()
          My object changes are the concatenation of the changes in my composed descriptions.
 EList<EObject> getObjectsToAttach()
          My objects to detach are the concatenation of the changes in my composed descriptions.
 EList<EObject> getObjectsToDetach()
          My objects to attach are the concatenation of the changes in my composed descriptions.
 EList<ResourceChange> getResourceChanges()
          My resource changes are the concatenation of the changes in my composed descriptions.
 boolean isEmpty()
          Queries whether I have no composed change descriptions.
 String toString()
           
 
Methods inherited from class org.eclipse.emf.ecore.change.impl.ChangeDescriptionImpl
eGet, eInverseRemove, eIsSet, eSet, eStaticClass, eUnset, getContainedEObjects, getObjectsToDetachGen, getOldContainer, getOldContainmentFeature, getOldContainmentInformation, preApply
 
Methods inherited from class org.eclipse.emf.ecore.impl.EObjectImpl
eAdapters, eBasicAdapters, eBasicProperties, eBasicSetContainer, eClass, eContainerFeatureID, eDeliver, eInternalContainer, eIsProxy, eProperties, eSetClass, eSetDeliver, eSetProxyURI
 
Methods inherited from class org.eclipse.emf.ecore.impl.BasicEObjectImpl
eAddVirtualValue, eAllContents, eBaseStructuralFeatureID, eBasicRemoveFromContainer, eBasicRemoveFromContainerFeature, eBasicSetContainer, eComputeVirtualValuesCapacity, eContainer, eContainingFeature, eContainmentFeature, eContainmentFeature, eContains, eContents, eCrossReferences, eDerivedStructuralFeatureID, eDerivedStructuralFeatureID, eDirectResource, eDynamicBasicRemoveFromContainer, eDynamicClass, eDynamicFeature, eDynamicFeatureID, eDynamicGet, eDynamicGet, eDynamicGet, eDynamicInverseAdd, eDynamicInverseAdd, eDynamicInverseRemove, eDynamicInverseRemove, eDynamicIsSet, eDynamicIsSet, eDynamicIsSet, eDynamicSet, eDynamicSet, eDynamicSet, eDynamicUnset, eDynamicUnset, eDynamicUnset, eGet, eGet, eGet, eHasSettings, eInternalResource, eInverseAdd, eInverseAdd, eInverseRemove, eIsSet, eObjectForURIFragmentSegment, eOpenGet, eOpenIsSet, eOpenSet, eOpenUnset, eProxyURI, eRemoveVirtualValue, eResolveProxy, eResource, eSet, eSetDirectResource, eSetResource, eSetStore, eSetting, eSettingDelegate, eSettings, eSetVirtualIndexBits, eSetVirtualValue, eSetVirtualValues, eStaticFeatureCount, eStore, eUnset, eURIFragmentSegment, eVirtualBitCount, eVirtualGet, eVirtualGet, eVirtualIndex, eVirtualIndexBits, eVirtualIsSet, eVirtualSet, eVirtualUnset, eVirtualValue, eVirtualValues
 
Methods inherited from class org.eclipse.emf.common.notify.impl.BasicNotifierImpl
eNotificationRequired, eNotify
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface org.eclipse.emf.ecore.EObject
eAllContents, eClass, eContainer, eContainingFeature, eContainmentFeature, eContents, eCrossReferences, eGet, eGet, eIsProxy, eIsSet, eResource, eSet, eUnset
 
Methods inherited from interface org.eclipse.emf.common.notify.Notifier
eAdapters, eDeliver, eNotify, eSetDeliver
 
Methods inherited from interface org.eclipse.emf.ecore.InternalEObject
eNotificationRequired
 

Constructor Detail

CompositeChangeDescription

public CompositeChangeDescription()
Method Detail

isEmpty

public final boolean isEmpty()
Queries whether I have no composed change descriptions.

Specified by:
isEmpty in interface TransactionChangeDescription
Returns:
false if I have any change descriptions; true, otherwise

clear

public final void clear()
Removes any change descriptions that I may have.


canApply

public boolean canApply()
I can apply myself if all of my composed changes can apply themselves.

Specified by:
canApply in interface TransactionChangeDescription
Returns:
true if my changes can be applied; false otherwise (i.e., they are not invertible)

apply

public void apply()
Specified by:
apply in interface ChangeDescription
Overrides:
apply in class ChangeDescriptionImpl

applyAndReverse

public void applyAndReverse()
Specified by:
applyAndReverse in interface ChangeDescription
Overrides:
applyAndReverse in class ChangeDescriptionImpl

add

public void add(ChangeDescription change)
Adds a change description to me.

Parameters:
change - a new change description to add

getObjectChanges

public EMap<EObject,EList<FeatureChange>> getObjectChanges()
My object changes are the concatenation of the changes in my composed descriptions.

Specified by:
getObjectChanges in interface ChangeDescription
Overrides:
getObjectChanges in class ChangeDescriptionImpl

getObjectsToDetach

public EList<EObject> getObjectsToDetach()
My objects to attach are the concatenation of the changes in my composed descriptions.

Specified by:
getObjectsToDetach in interface ChangeDescription
Overrides:
getObjectsToDetach in class ChangeDescriptionImpl

getObjectsToAttach

public EList<EObject> getObjectsToAttach()
My objects to detach are the concatenation of the changes in my composed descriptions.

Specified by:
getObjectsToAttach in interface ChangeDescription
Overrides:
getObjectsToAttach in class ChangeDescriptionImpl

getResourceChanges

public EList<ResourceChange> getResourceChanges()
My resource changes are the concatenation of the changes in my composed descriptions.

Specified by:
getResourceChanges in interface ChangeDescription
Overrides:
getResourceChanges in class ChangeDescriptionImpl

toString

public String toString()
Overrides:
toString in class BasicEObjectImpl

Copyright 2002, 2007 IBM Corporation and others.
All Rights Reserved.