|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface ICloneObjectExtensionMergeStrategy
A special support API which allows ICloneObjectExtension
s and other modules to contribute
special handling code for merging of ICloneObjectExtension
data.
Every implementation needs to provide a no-argument constructor.
Implementations of this interface are treated as Singletons. An instance of each strategy will be generated at startup and will then be reused whenever needed.
IMergeProvider
,
MergeProvider
,
ICloneObjectExtension
Nested Class Summary | |
---|---|
static class |
ICloneObjectExtensionMergeStrategy.Status
Return status indicator for merge(IReadableMergeTask, IMergeResult, ICloneObject, ICloneObject, ICloneObject, ICloneObject, LinkedList, LinkedList, LinkedList) . |
Method Summary | |
---|---|
ICloneObjectExtensionMergeStrategy.Status |
merge(IReadableMergeTask mergeTask,
IMergeResult mergeResult,
ICloneObject localCloneObject,
ICloneObject remoteCloneObject,
ICloneObject baseCloneObject,
ICloneObject mergedCloneObject,
java.util.LinkedList<ICloneObjectExtension> pendingLocalExtensions,
java.util.LinkedList<ICloneObjectExtension> pendingRemoteExtensions,
java.util.LinkedList<ICloneObjectExtension> pendingBaseExtensions)
Takes a local and remote version of an ICloneObject instance with extensions and an optional
base version and merges the data of supported extensions. |
Method Detail |
---|
ICloneObjectExtensionMergeStrategy.Status merge(IReadableMergeTask mergeTask, IMergeResult mergeResult, ICloneObject localCloneObject, ICloneObject remoteCloneObject, ICloneObject baseCloneObject, ICloneObject mergedCloneObject, java.util.LinkedList<ICloneObjectExtension> pendingLocalExtensions, java.util.LinkedList<ICloneObjectExtension> pendingRemoteExtensions, java.util.LinkedList<ICloneObjectExtension> pendingBaseExtensions)
ICloneObject
instance with extensions and an optional
base version and merges the data of supported extensions.
The result is directly written to the given merged version of the clone object.
The pending base clone object list does not need to be completely processed. The pending local and remote
clone object lists should be empty once all strategies have been executed.
Usually the last ("fallback") strategy will take care of all remaining, pending local and remote clone objects.
mergeTask
- the current merge task for which this merging is taking place, must not be
modified in any way, never null.mergeResult
- the current merge result, this may not yet be the final merge result,
must not be modified in any way, never null.localCloneObject
- the former local version of the clone object, must not be modified, never null.remoteCloneObject
- the former remote version of the clone object, must not be modified, never null.baseCloneObject
- an optional base version of the clone object, must not be modified, may be NULL.mergedCloneObject
- the new, merged version of the clone object, may be modified, never null.pendingLocalExtensions
- a list of so far unhandled former local extension objects, may be empty, may be modified, never null.pendingRemoteExtensions
- a list of so far unhandled former remote extension objects, may be empty, may be modified, never null.pendingBaseExtensions
- a list of so far unhandled base extension objects, may be empty, may be modified, never null.
ICloneObjectExtensionMergeStrategy.Status
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |