Interface IModelObjectDelta
-
- All Known Implementing Classes:
ModelObjectDelta
public interface IModelObjectDeltaA model object delta represents the delta between two model objects. The two model objects must be instances of the same model class. One typical use case is that the two (technical) objects represent the same business object but at two different points in time.- Author:
- Jan Ortmann
-
-
Field Summary
Fields Modifier and Type Field Description static intADDEDDelta kind constant indicating that the model object has been added to it's parent.static intCHANGEDDelta kind constant indicating that the model object has changed somehow.static intCHILD_CHANGEDDelta change type constant indicating that at least one child (that has neither been added or removed or just moved) has changed.static intCLASS_CHANGEDDelta change type constant indicating that the class of the object has changed.static intDIFFERENT_OBJECT_AT_POSITIONDelta kind constant indicating that a different model object is now at a given position.static intEMPTYConstant indicating that the delta is empty, no difference exists between the two objects.static intMOVEDDelta kind constant indicating that the model object has been moved, meaning it's position in the ordered list of objects has been changed.static intPROPERTY_CHANGEDDelta change type constant indicating that at least one of the object's properties has changed.static intREMOVEDDelta kind constant indicating that the model object has been removed from it's parent.static intSTRUCTURE_CHANGEDDelta change type constant indicating that the object's structure has changed, that means either a child has been added, removed or changed its position (if the computation method isIDeltaComputationOptions.ComputationMethod.BY_OBJECTor a different object is now at a given position (if the computation method isIDeltaComputationOptions.ComputationMethod.BY_OBJECT.
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description voidaccept(IModelObjectDeltaVisitor visitor)Accepts the given visitor.java.lang.StringgetAssociation()The name of the association in which the object has been added, removed or changed.AssociationKindgetAssociationKind()Returns the kind of association if this delta has any incoming association, that means it is part of a composite or the object is associated from another object.java.util.List<java.lang.String>getChangedProperties()Returns the properties that have a different value in the model object and the reference model object.java.util.List<IModelObjectDelta>getChildDeltas()Returns deltas for all children of the model object which were added, removed, or changed.java.util.List<IModelObjectDelta>getChildDeltas(int kind)Returns deltas for all children of this model object whose kind is included in the given mask.intgetKind()Returns the kind of change.intgetKindOfChange()If delta's kind isCHANGED, this method returns the kind of changed defined by the constant listed below.IModelObjectgetOriginalObject()The model object this delta is computed for.IModelObjectgetReferenceObject()The model object that is taken as a reference to which the orginal model object is compared to.booleanisAdded()Returnstrueif this model object has been added to its parent,falseotherwise.booleanisChanged()Returnstrueif this model object has been changed.booleanisChildChanged()Returnstrueif at least one model object's children has been changed.booleanisClassChanged()Returnstrueif the model object's Java class has "changed".booleanisDifferentObjectAtPosition()Returnstrueif a different model object is at a position, otherwisefalse.booleanisEmpty()Returnstrueif the delta is empty, the two objects are the same, otherwisefalse.booleanisMoved()Returnstrueif this model object has changed its position in the ordered association.booleanisPropertyChanged()Returnstrueif at least one the model object's properties has changed, otherwisefalse.booleanisPropertyChanged(java.lang.String propertyName)Returnstrueif the model object contains a different value for the given property than the reference model object.booleanisRemoved()Returnstrueif this model object has been removed from its parent,falseotherwise.booleanisStructureChanged()Returnstrueif this model object's structure has changed.
-
-
-
Field Detail
-
EMPTY
static final int EMPTY
Constant indicating that the delta is empty, no difference exists between the two objects.If the object is a root object, this means that all properties are equal, no children have been removed, added or have changed their position.
If this object is a dependent object (it belongs to a parent), this means that all properties are equal and this object has neither been added to or removed from its parent nor has the position of the object changed.
- See Also:
- Constant Field Values
-
ADDED
static final int ADDED
Delta kind constant indicating that the model object has been added to it's parent.- See Also:
- Constant Field Values
-
REMOVED
static final int REMOVED
Delta kind constant indicating that the model object has been removed from it's parent.- See Also:
- Constant Field Values
-
MOVED
static final int MOVED
Delta kind constant indicating that the model object has been moved, meaning it's position in the ordered list of objects has been changed. This type of delta is only returned if the computation method isIDeltaComputationOptions.ComputationMethod.BY_OBJECT.Note that an object can be moved and changed! In this case getKind() returns
MOVED & CHANGED.- See Also:
- Constant Field Values
-
DIFFERENT_OBJECT_AT_POSITION
static final int DIFFERENT_OBJECT_AT_POSITION
Delta kind constant indicating that a different model object is now at a given position. This type of delta is only returned if the computation method isIDeltaComputationOptions.ComputationMethod.BY_POSITION.- See Also:
- Constant Field Values
-
CHANGED
static final int CHANGED
Delta kind constant indicating that the model object has changed somehow. If the object has changed, the type of change is further specified with the following constants. Note that these constants are bit masks as more than one type of change can occur.Note that an object can be moved and changed! In this case getKind() returns
MOVED & CHANGED.
-
STRUCTURE_CHANGED
static final int STRUCTURE_CHANGED
Delta change type constant indicating that the object's structure has changed, that means either a child has been added, removed or changed its position (if the computation method isIDeltaComputationOptions.ComputationMethod.BY_OBJECTor a different object is now at a given position (if the computation method isIDeltaComputationOptions.ComputationMethod.BY_OBJECT.- See Also:
- Constant Field Values
-
PROPERTY_CHANGED
static final int PROPERTY_CHANGED
Delta change type constant indicating that at least one of the object's properties has changed.- See Also:
- Constant Field Values
-
CHILD_CHANGED
static final int CHILD_CHANGED
Delta change type constant indicating that at least one child (that has neither been added or removed or just moved) has changed. Either one of the child's properties has changed or it's structure (or both).- See Also:
- Constant Field Values
-
CLASS_CHANGED
static final int CLASS_CHANGED
Delta change type constant indicating that the class of the object has changed.- See Also:
- Constant Field Values
-
-
Method Detail
-
getOriginalObject
IModelObject getOriginalObject()
The model object this delta is computed for. If this is a delta for a a child that was added to the new object, the method returnsnull.
-
getReferenceObject
IModelObject getReferenceObject()
The model object that is taken as a reference to which the orginal model object is compared to.If this is a delta for a a child that was removed from the orginial model object, the method returns
null.
-
getKind
int getKind()
Returns the kind of change. Note that an object can be moved and changed! To allow this type of information to be returned, a bit mask is used!
-
getKindOfChange
int getKindOfChange()
If delta's kind isCHANGED, this method returns the kind of changed defined by the constant listed below. Not that the kind of changes are not mututally excluded, so the returned kinds are bit masked. The method returns 0, if the delta's kind is notCHANGED.- See Also:
PROPERTY_CHANGED,STRUCTURE_CHANGED,CHILD_CHANGED
-
isEmpty
boolean isEmpty()
Returnstrueif the delta is empty, the two objects are the same, otherwisefalse.
-
isAdded
boolean isAdded()
Returnstrueif this model object has been added to its parent,falseotherwise.
-
isRemoved
boolean isRemoved()
Returnstrueif this model object has been removed from its parent,falseotherwise.
-
isMoved
boolean isMoved()
Returnstrueif this model object has changed its position in the ordered association. This type of delta is only returned if the computation method isIDeltaComputationOptions.ComputationMethod.BY_OBJECT.
-
isDifferentObjectAtPosition
boolean isDifferentObjectAtPosition()
Returnstrueif a different model object is at a position, otherwisefalse. This type of delta is only returned if the computation method isIDeltaComputationOptions.ComputationMethod.BY_POSITION.
-
isChanged
boolean isChanged()
Returnstrueif this model object has been changed.
-
isStructureChanged
boolean isStructureChanged()
Returnstrueif this model object's structure has changed. That means either a child has been added or removed or a child has been been moved.
-
isClassChanged
boolean isClassChanged()
Returnstrueif the model object's Java class has "changed". (Technically its of course just an instance of another class). Returnsfalseotherwise.
-
isPropertyChanged
boolean isPropertyChanged()
Returnstrueif at least one the model object's properties has changed, otherwisefalse.
-
isChildChanged
boolean isChildChanged()
Returnstrueif at least one model object's children has been changed.
-
getAssociation
java.lang.String getAssociation()
The name of the association in which the object has been added, removed or changed. The association name is alwaysnullfor the root of the delta.
-
getAssociationKind
AssociationKind getAssociationKind()
Returns the kind of association if this delta has any incoming association, that means it is part of a composite or the object is associated from another object.- Returns:
- the
AssociationKindornullif this is the root
-
getChangedProperties
java.util.List<java.lang.String> getChangedProperties()
Returns the properties that have a different value in the model object and the reference model object. Returns an empty list if no such property exists.The order of properties in the list corresponds to the
order defined in the model type. Properties not manually defined in the model type, such as theproduct component, are placed before manually defined attributes.
-
isPropertyChanged
boolean isPropertyChanged(java.lang.String propertyName)
Returnstrueif the model object contains a different value for the given property than the reference model object. Returnsfalseotherwise. Returnsfalseif propertyName isnull.
-
getChildDeltas
java.util.List<IModelObjectDelta> getChildDeltas()
Returns deltas for all children of the model object which were added, removed, or changed. Returns an empty array if there are no affected children.
-
getChildDeltas
java.util.List<IModelObjectDelta> getChildDeltas(int kind)
Returns deltas for all children of this model object whose kind is included in the given mask. Kind masks are formed by the bitwise or ofIModelObjectDeltakind constants. Returns an empty array if there are no affected children.
-
accept
void accept(IModelObjectDeltaVisitor visitor)
Accepts the given visitor.The visitor's
visitmethod is called. If the visitor returnstrue, the delta's children are also visited.- Parameters:
visitor- the visitor- Throws:
java.lang.NullPointerException- if visitor isnull.- See Also:
IModelObjectDeltaVisitor.visit(IModelObjectDelta)
-
-