Interface NodeStateDiff
-
- All Known Implementing Classes:
AbstractRebaseDiff
,ApplyDiff
,ConflictAnnotatingRebaseDiff
,DefaultNodeStateDiff
,EditorDiff
,EqualsDiff
,JsopDiff
,MergingNodeStateDiff
,ModifiedPathDiff
public interface NodeStateDiff
Handler of node state differences. TheNodeState.compareAgainstBaseState(NodeState, NodeStateDiff)
method reports detected node state differences by calling methods of a handler instance that implements this interface.The compare method goes through all properties and child nodes of the two states, calling the relevant added, changed or deleted methods where appropriate. Differences in the ordering of properties or child nodes do not affect the comparison, and the order in which such differences are reported is unspecified.
The methods in this interface all return a boolean value to signify whether the comparison should continue or abort. If a method returns
false
, then the comparison is immediately stopped, that means sibling nodes and sibling nodes of all parents are not further processed. Otherwise it continues until all changes have been reported.Note that the
NodeState.compareAgainstBaseState(NodeState, NodeStateDiff)
method only compares the given states without recursing to the subtrees below. An implementation of this interface should recursively call that method for the relevant child node entries to find out all the changes across the entire subtree below the given node.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description boolean
childNodeAdded(java.lang.String name, NodeState after)
Called for all added child nodes.boolean
childNodeChanged(java.lang.String name, NodeState before, NodeState after)
Called for all child nodes that may contain changes between the before and after states.boolean
childNodeDeleted(java.lang.String name, NodeState before)
Called for all deleted child nodes.boolean
propertyAdded(PropertyState after)
Called for all added properties.boolean
propertyChanged(PropertyState before, PropertyState after)
Called for all changed properties.boolean
propertyDeleted(PropertyState before)
Called for all deleted properties.
-
-
-
Method Detail
-
propertyAdded
boolean propertyAdded(PropertyState after)
Called for all added properties.- Parameters:
after
- property state after the change- Returns:
true
to continue the comparison,false
to abort. Abort will stop comparing completely, that means sibling nodes and sibling nodes of all parents are not further compared.
-
propertyChanged
boolean propertyChanged(PropertyState before, PropertyState after)
Called for all changed properties. The names of the given two property states are guaranteed to be the same.- Parameters:
before
- property state before the changeafter
- property state after the change- Returns:
true
to continue the comparison,false
to abort. Abort will stop comparing completely, that means sibling nodes and sibling nodes of all parents are not further compared.
-
propertyDeleted
boolean propertyDeleted(PropertyState before)
Called for all deleted properties.- Parameters:
before
- property state before the change- Returns:
true
to continue the comparison,false
to abort. Abort will stop comparing completely, that means sibling nodes and sibling nodes of all parents are not further compared.
-
childNodeAdded
boolean childNodeAdded(java.lang.String name, NodeState after)
Called for all added child nodes.- Parameters:
name
- name of the added child nodeafter
- child node state after the change- Returns:
true
to continue the comparison,false
to abort. Abort will stop comparing completely, that means sibling nodes and sibling nodes of all parents are not further compared.
-
childNodeChanged
boolean childNodeChanged(java.lang.String name, NodeState before, NodeState after)
Called for all child nodes that may contain changes between the before and after states. The comparison implementation is expected to make an effort to avoid calling this method on child nodes under which nothing has changed.- Parameters:
name
- name of the changed child nodebefore
- child node state before the changeafter
- child node state after the change- Returns:
true
to continue the comparison,false
to abort. Abort will stop comparing completely, that means sibling nodes and sibling nodes of all parents are not further compared.
-
childNodeDeleted
boolean childNodeDeleted(java.lang.String name, NodeState before)
Called for all deleted child nodes.- Parameters:
name
- name of the deleted child nodebefore
- child node state before the change- Returns:
true
to continue the comparison,false
to abort. Abort will stop comparing completely, that means sibling nodes and sibling nodes of all parents are not further compared.
-
-