Enum MergePolicy

java.lang.Object
java.lang.Enum<MergePolicy>
org.infinispan.conflict.MergePolicy
All Implemented Interfaces:
Serializable, Comparable<MergePolicy>, EntryMergePolicy

public enum MergePolicy extends Enum<MergePolicy> implements EntryMergePolicy
  • Enum Constant Details

    • CUSTOM

      public static final MergePolicy CUSTOM
    • NONE

      public static final MergePolicy NONE
    • PREFERRED_ALWAYS

      public static final MergePolicy PREFERRED_ALWAYS
    • PREFERRED_NON_NULL

      public static final MergePolicy PREFERRED_NON_NULL
    • REMOVE_ALL

      public static final MergePolicy REMOVE_ALL
  • Method Details

    • values

      public static MergePolicy[] values()
      Returns an array containing the constants of this enum type, in the order they are declared.
      Returns:
      an array containing the constants of this enum type, in the order they are declared
    • valueOf

      public static MergePolicy valueOf(String name)
      Returns the enum constant of this type with the specified name. The string must match exactly an identifier used to declare an enum constant in this type. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum type has no constant with the specified name
      NullPointerException - if the argument is null
    • merge

      public CacheEntry merge(CacheEntry preferredEntry, List otherEntries)
      Description copied from interface: EntryMergePolicy
      This method is called by ConflictManager.resolveConflicts() for each conflict discovered to determine which CacheEntry should be utilised. This merge policy is used when a user explicitly calls ConflictManager.resolveConflicts() as well as when a partition merge occurs with PartitionHandling.ALLOW_READ_WRITES set. In the event of a partition merge, we define the preferred partition as the partition whom's coordinator is coordinating the current merge.
      Specified by:
      merge in interface EntryMergePolicy
      Parameters:
      preferredEntry - During a partition merge, the preferredEntry is the primary replica of a CacheEntry stored in the partition that contains the most nodes or if partitions are equal the one with the largest topologyId. In the event of overlapping partitions, i.e. a node A is present in the topology of both partitions {A}, {A,B,C}, we pick {A} as the preferred partition as it will have the higher topologId because the other partition's topology is behind. During a non-merge call to ConflictManager.resolveConflicts(), the preferredEntry is simply the primary owner of an entry
      otherEntries - a List of all other CacheEntry associated with a given Key.
      Returns:
      the winning CacheEntry to be utilised across the cluster, or null if all entries for a key should be removed.
    • fromString

      public static MergePolicy fromString(String str)
    • fromConfiguration

      public static MergePolicy fromConfiguration(EntryMergePolicy policy)