V - the (deserialized) type of the merging valueT - the type of the required merging value, e.g. a simple
            MergingValue<V> or a composition like MergingEntry<String, V> & MergingHits & MergingLastAccessTimeR - the type of the merged value as returned by merge(MergingValue, MergingValue)public interface SplitBrainMergePolicy<V,T extends MergingValue<V>,R> extends DataSerializable
 The values of merging and existing MergingValues are
 always in the in-memory format of the backing data structure.
 This can be a serialized format, so the content cannot be
 processed without deserialization. For most merge policies
 this will be fine, since the key or value are not used.
 
The deserialization is not done eagerly for two main reasons:
InMemoryFormat.BINARY with a different
 classpath on client and server. In this case a deserialization
 could throw a ClassNotFoundException.MergingValue.getValue()
 or MergingEntry.getKey(),
 which will deserialize the data lazily.
 
 A merge policy can implement HazelcastInstanceAware to get the
 HazelcastInstance injected. This can be used to retrieve the
 user context via HazelcastInstance.getUserContext(), which is
 an easy way to get user dependencies that are otherwise hard to obtain.
 
 A merge policy can also implement NodeAware
 to get an instance of Node injected.
| Modifier and Type | Method and Description | 
|---|---|
| R | merge(T mergingValue,
     T existingValue)Selects the value of either the merging or the
 existing  MergingValuewhich should be merged. | 
readData, writeDataR merge(T mergingValue, T existingValue)
MergingValue which should be merged.
 
 Note that the existing MergingValue instance may be null
 if no matching data could be found to the merging MergingValue.
mergingValue - MergingValue instance that has the
                      merging data of the smaller sub-clusterexistingValue - MergingValue instance that has the existing
                      data or null if no matching data existsCopyright © 2021 Hazelcast, Inc.. All rights reserved.