T - List typepublic class ListMergeBehavior<T extends List> extends Object implements GlobalMergeBehavior<T,T,T>
List merge behavior that tracks `Identifiable` elements
It will attempt to find identifiable elements in list and merge them.
Other elements will simply be added to the end of the list in provided order.
This is the best way we can handle list elements merge without any additional information on the elements.Merge,
Serialized Form| Constructor and Description |
|---|
ListMergeBehavior(Matcher matcher)
Constructs new
ListMergeBehavior. |
ListMergeBehavior(Matcher matcher,
DuplicateResolver baseDuplicateResolver,
DuplicateResolver mergedDuplicateResolver)
Constructs new
ListMergeBehavior. |
| Modifier and Type | Method and Description |
|---|---|
T |
merge(RecursiveMerge merge,
Class type,
T base,
T merged,
int depth)
Performs merge of the two provided objects and returns resulting object.
|
boolean |
supports(RecursiveMerge merge,
Class<T> type,
Object base,
Object merged)
Returns whether or not this behavior supports specified objects merge.
|
public ListMergeBehavior(@NotNull Matcher matcher)
ListMergeBehavior.matcher - Matcher for list elementspublic ListMergeBehavior(@NotNull Matcher matcher, @NotNull DuplicateResolver baseDuplicateResolver, @NotNull DuplicateResolver mergedDuplicateResolver)
ListMergeBehavior.matcher - Matcher for list elementsbaseDuplicateResolver - DuplicateResolver used for solving cases with duplicates in base ListmergedDuplicateResolver - DuplicateResolver used for solving cases with duplicates in merged Listpublic boolean supports(@NotNull RecursiveMerge merge, @NotNull Class<T> type, @NotNull Object base, @NotNull Object merged)
GlobalMergeBehaviorsupports in interface GlobalMergeBehavior<T extends List,T extends List,T extends List>merge - RecursiveMerge algorithmtype - expected resulting object Class typebase - base object, should never be nullmerged - object to merge, should never be nulltrue if this behavior supports specified objects merge, false otherwise@NotNull public T merge(@NotNull RecursiveMerge merge, @NotNull Class type, @NotNull T base, @NotNull T merged, int depth)
GlobalMergeBehaviormerge in interface GlobalMergeBehavior<T extends List,T extends List,T extends List>merge - RecursiveMerge algorithmtype - expected resulting object Class typebase - base object, should never be nullmerged - object to merge, should never be nulldepth - merge calls stack depthCopyright © 2020. All rights reserved.