|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.faktorips.runtime.DeltaComputationOptionsByPosition
public class DeltaComputationOptionsByPosition
Delta computation options that create child deltas per position and don't ignore any property. TODO the following reference does not exist
IDeltaComputationOptions.ComputationMethod.BY_POSITION| Nested Class Summary |
|---|
| Nested classes/interfaces inherited from interface org.faktorips.runtime.IDeltaComputationOptions |
|---|
IDeltaComputationOptions.ComputationMethod |
| Constructor Summary | |
|---|---|
DeltaComputationOptionsByPosition()
|
|
| Method Summary | |
|---|---|
boolean |
areValuesEqual(Class<?> modelClass,
String property,
Object value1,
Object value2)
Compares two values for equality by the given model class and property, where either one or both values may be null. |
IDeltaComputationOptions.ComputationMethod |
getMethod(String association)
Returns if the delta computation computes child deltas per position/index or per object. |
boolean |
ignore(Class<?> clazz,
String property)
Returns false. |
boolean |
isCreateSubtreeDelta()
Controls whether delta objects for added or removed subtree elements should be created explicitly. |
boolean |
isSame(IModelObject object1,
IModelObject object2)
Returns true if the specified object references are identical. |
| Methods inherited from class java.lang.Object |
|---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
| Constructor Detail |
|---|
public DeltaComputationOptionsByPosition()
| Method Detail |
|---|
public IDeltaComputationOptions.ComputationMethod getMethod(String association)
IDeltaComputationOptions
1. Example for a 1-many association:
A contract version A has three coverages c0, c1, and c2. A second version B of the same
contract has a new coverage cNew inserted between coverage c0 and c1. The coverages c0,
c1,and c2 are unchanged except for their position.
If this method returns IDeltaComputationOptions.ComputationMethod.BY_POSITION, the following deltas are
computed. position 0: version A:c0, version B:c0 => empty delta position 1: version A:c1,
version B:cNew => changed position 2: version A:c2, version B:c1 => changed position 3:
version A:none, version B:c2 => added
If this method returns IDeltaComputationOptions.ComputationMethod.BY_OBJECT, the following deltas are
computed. c0: version A:position 0, version B:position 0 => empty delta c1: version
A:position 1, version B:position 2 => moved c2: version A:position 2, version B:position 3 =>
moved cNew: version A:position none, version B:position 1 => added
2. Example for a 1-many association:
Same scenario as above, but now c1 is removed and no coverage is added.
If this method returns IDeltaComputationOptions.ComputationMethod.BY_POSITION, the following deltas are
computed. position 0: version A:c0, version B:c0 => empty delta position 1: version A:c1,
version B:v2 => changed position 2: version A:c2, version B:none => removed
If this method returns IDeltaComputationOptions.ComputationMethod.BY_OBJECT, the following deltas are
computed. c0: version A:position 0, version B:position 0 => empty delta c1: version
A:position 1, version B:position none => removed c2: version A:position 2, version B:position
1 => moved
Example for a 1-1 association:
A contract version A has the insured person p0. A second contract version B has the insured
person p1.
If this method returns IDeltaComputationOptions.ComputationMethod.BY_POSITION, the following delta is
computed. position 0: changed
If this method returns IDeltaComputationOptions.ComputationMethod.BY_OBJECT, the following deltas are
computed. p1: removed p2: added
getMethod in interface IDeltaComputationOptions
public boolean isSame(IModelObject object1,
IModelObject object2)
true if the specified object references are identical.
isSame in interface IDeltaComputationOptions
public boolean ignore(Class<?> clazz,
String property)
false.
ignore in interface IDeltaComputationOptionsclazz - The class the property belongs to.property - The name of the property.public boolean isCreateSubtreeDelta()
IDeltaComputationOptions
This method returns true if a delta should be created for added or removed
subtrees. If this method returns false a delta is only created for the root of
an added or removed subtree.
The creation of delta elements for subtree nodes is based on reflection and may cause a performance issue if used in massive delta computation with many added or removed subtrees.
isCreateSubtreeDelta in interface IDeltaComputationOptionstrue if a delta should be created for every element of an added or
removed subtree.
public boolean areValuesEqual(Class<?> modelClass,
String property,
Object value1,
Object value2)
IDeltaComputationOptionsnull.
areValuesEqual in interface IDeltaComputationOptionsmodelClass - The class the property belongs to.property - The name of the property.value1 - The first value to comparevalue2 - The second value to compare
true if the values are the same
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||