public class CompositeConflictHandler extends java.lang.Object implements ThreeWayConflictHandler
CompositeConflictHandler
delegates conflict handling
to multiple backing handlers. The backing handlers are invoked in
the inverse order they have been installed until a handler returning
a valid resolution (i.e. not IGNORED)
is found. If for a certain
conflict none of the backing handlers returns a valid resolution
this implementation throws an IllegalStateException
.ThreeWayConflictHandler.Resolution
Constructor and Description |
---|
CompositeConflictHandler()
Create a new
CompositeConflictHandler with no backing handlers. |
CompositeConflictHandler(@NotNull java.lang.Iterable<ThreeWayConflictHandler> handlers)
Create a new
CompositeConflictHandler with an initial set of
backing handler. |
Modifier and Type | Method and Description |
---|---|
ThreeWayConflictHandler.Resolution |
addExistingNode(NodeBuilder parent,
java.lang.String name,
NodeState ours,
NodeState theirs)
The node
ours has been added to parent which conflicts
with node theirs which has been added in the persistence store. |
ThreeWayConflictHandler.Resolution |
addExistingProperty(NodeBuilder parent,
PropertyState ours,
PropertyState theirs)
The property
ours has been added to parent which conflicts
with property theirs which has been added in the persistence store. |
CompositeConflictHandler |
addHandler(ThreeWayConflictHandler handler)
Add a new backing conflict handler.
|
ThreeWayConflictHandler.Resolution |
changeChangedProperty(NodeBuilder parent,
PropertyState ours,
PropertyState theirs,
PropertyState base)
The property
ours has been changed in parent while it was
also changed to a different value (theirs ) in the persistence store. |
ThreeWayConflictHandler.Resolution |
changeDeletedNode(NodeBuilder parent,
java.lang.String name,
NodeState ours,
NodeState base)
The node
ours has been changed in parent while it was
removed in the persistence store. |
ThreeWayConflictHandler.Resolution |
changeDeletedProperty(NodeBuilder parent,
PropertyState ours,
PropertyState base)
The property
ours has been changed in parent while it was
removed in the persistence store. |
ThreeWayConflictHandler.Resolution |
deleteChangedNode(NodeBuilder parent,
java.lang.String name,
NodeState theirs,
NodeState base)
The node
theirs changed in the persistence store while it has been
deleted locally. |
ThreeWayConflictHandler.Resolution |
deleteChangedProperty(NodeBuilder parent,
PropertyState theirs,
PropertyState base)
The property
theirs changed in the persistence store while it has been
deleted locally. |
ThreeWayConflictHandler.Resolution |
deleteDeletedNode(NodeBuilder parent,
java.lang.String name,
NodeState base)
The node
name has been removed in parent while it was
also removed in the persistence store. |
ThreeWayConflictHandler.Resolution |
deleteDeletedProperty(NodeBuilder parent,
PropertyState base)
The property
ours has been removed in parent while it was
also removed in the persistence store. |
public CompositeConflictHandler(@NotNull @NotNull java.lang.Iterable<ThreeWayConflictHandler> handlers)
CompositeConflictHandler
with an initial set of
backing handler. Use addHandler(ThreeWayConflictHandler)
to add additional
handlers.handlers
- the backing handlerspublic CompositeConflictHandler()
CompositeConflictHandler
with no backing handlers.
backing handler. Use addHandler(ThreeWayConflictHandler)
to add handlers.public CompositeConflictHandler addHandler(ThreeWayConflictHandler handler)
handler
- public ThreeWayConflictHandler.Resolution addExistingProperty(NodeBuilder parent, PropertyState ours, PropertyState theirs)
ThreeWayConflictHandler
ours
has been added to parent
which conflicts
with property theirs
which has been added in the persistence store.addExistingProperty
in interface ThreeWayConflictHandler
parent
- root of the conflictours
- our version of the propertytheirs
- their version of the propertyThreeWayConflictHandler.Resolution
of the conflictpublic ThreeWayConflictHandler.Resolution changeDeletedProperty(NodeBuilder parent, PropertyState ours, PropertyState base)
ThreeWayConflictHandler
ours
has been changed in parent
while it was
removed in the persistence store.changeDeletedProperty
in interface ThreeWayConflictHandler
parent
- root of the conflictours
- our version of the propertybase
- the base version of the propertyThreeWayConflictHandler.Resolution
of the conflictpublic ThreeWayConflictHandler.Resolution changeChangedProperty(NodeBuilder parent, PropertyState ours, PropertyState theirs, PropertyState base)
ThreeWayConflictHandler
ours
has been changed in parent
while it was
also changed to a different value (theirs
) in the persistence store.changeChangedProperty
in interface ThreeWayConflictHandler
parent
- root of the conflictours
- our version of the propertytheirs
- their version of the propertybase
- the base version of the propertyThreeWayConflictHandler.Resolution
of the conflictpublic ThreeWayConflictHandler.Resolution deleteDeletedProperty(NodeBuilder parent, PropertyState base)
ThreeWayConflictHandler
ours
has been removed in parent
while it was
also removed in the persistence store.deleteDeletedProperty
in interface ThreeWayConflictHandler
parent
- root of the conflictbase
- the base version of the propertyThreeWayConflictHandler.Resolution
of the conflictpublic ThreeWayConflictHandler.Resolution deleteChangedProperty(NodeBuilder parent, PropertyState theirs, PropertyState base)
ThreeWayConflictHandler
theirs
changed in the persistence store while it has been
deleted locally.deleteChangedProperty
in interface ThreeWayConflictHandler
parent
- root of the conflicttheirs
- their version of the propertybase
- the base version of the propertyThreeWayConflictHandler.Resolution
of the conflictpublic ThreeWayConflictHandler.Resolution addExistingNode(NodeBuilder parent, java.lang.String name, NodeState ours, NodeState theirs)
ThreeWayConflictHandler
ours
has been added to parent
which conflicts
with node theirs
which has been added in the persistence store.addExistingNode
in interface ThreeWayConflictHandler
parent
- root of the conflictname
- name of the nodeours
- our version of the nodetheirs
- their version of the nodeThreeWayConflictHandler.Resolution
of the conflictpublic ThreeWayConflictHandler.Resolution changeDeletedNode(NodeBuilder parent, java.lang.String name, NodeState ours, NodeState base)
ThreeWayConflictHandler
ours
has been changed in parent
while it was
removed in the persistence store.changeDeletedNode
in interface ThreeWayConflictHandler
parent
- root of the conflictname
- name of the nodeours
- our version of the nodebase
- the base version of the nodeThreeWayConflictHandler.Resolution
of the conflictpublic ThreeWayConflictHandler.Resolution deleteChangedNode(NodeBuilder parent, java.lang.String name, NodeState theirs, NodeState base)
ThreeWayConflictHandler
theirs
changed in the persistence store while it has been
deleted locally.deleteChangedNode
in interface ThreeWayConflictHandler
parent
- root of the conflictname
- name of the nodetheirs
- their version of the nodebase
- the base version of the nodeThreeWayConflictHandler.Resolution
of the conflictpublic ThreeWayConflictHandler.Resolution deleteDeletedNode(NodeBuilder parent, java.lang.String name, NodeState base)
ThreeWayConflictHandler
name
has been removed in parent
while it was
also removed in the persistence store.deleteDeletedNode
in interface ThreeWayConflictHandler
parent
- root of the conflictname
- name of the nodebase
- the base version of the nodeThreeWayConflictHandler.Resolution
of the conflictCopyright © 2010 - 2020 Adobe. All Rights Reserved