java.lang.Object
org.elasticsearch.cluster.DiffableUtils
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classDiffableUtils.DiffableValueReader<K,V extends Diffable<V>> Implementation of the ValueSerializer that wraps value and diff readers.static classDiffableUtils.DiffableValueSerializer<K,V extends Diffable<V>> Serializer for Diffable map values.static interfaceProvides read and write operations to serialize keys of mapstatic classRepresents differences between two maps of objects and is used as base class for different map implementations.static classSerializer for non-diffable map valuesstatic classImplementation of ValueSerializer that serializes immutable setsstatic interfaceProvides read and write operations to serialize map values. -
Method Summary
Modifier and TypeMethodDescriptionstatic <K,T extends Diffable<T>, M extends Map<K, T>>
DiffableUtils.MapDiff<K, T, M> diff(M before, M after, DiffableUtils.KeySerializer<K> keySerializer) Calculates diff between two Maps of Diffable objects.static <K,T, M extends Map<K, T>>
DiffableUtils.MapDiff<K, T, M> diff(M before, M after, DiffableUtils.KeySerializer<K> keySerializer, DiffableUtils.ValueSerializer<K, T> valueSerializer) Calculates diff between two Maps of non-diffable objectsstatic <K,T, M extends Map<K, T>>
DiffableUtils.MapDiff<K, T, M> static DiffableUtils.KeySerializer<Integer> Returns a map key serializer for Integer keys.static DiffableUtils.KeySerializer<String> Returns a map key serializer for String keysstatic DiffableUtils.KeySerializer<Integer> Returns a map key serializer for Integer keys.static <W extends Writeable>
DiffableUtils.KeySerializer<W> getWriteableKeySerializer(Writeable.Reader<W> reader) Returns a map key serializer forWriteablekeys.static <K,T, M extends Map<K, T>>
booleanhasKey(DiffableUtils.MapDiff<K, T, M> diff, K key) Check whether the specified MapDiff has any changes associated with the specified keystatic <K1,K2, T extends Diffable<T>, M1 extends Map<K1, T>>
DiffableUtils.MapDiff<K2, T, Map<K2, T>> jdkMapDiffWithUpdatedKeys(DiffableUtils.MapDiff<K1, T, M1> diff, Function<K1, K2> keyFunction, DiffableUtils.KeySerializer<K2> keySerializer) Create a new JDK map backed MapDiff by transforming the keys with the provided keyFunction.static <K,T extends Diffable<T>, T1 extends T, T2 extends T, M extends Map<K, T>>
DiffableUtils.MapDiff<K, T, M> merge(DiffableUtils.MapDiff<K, T1, ? extends ImmutableOpenMap<K, T1>> diff1, DiffableUtils.MapDiff<K, T2, ? extends ImmutableOpenMap<K, T2>> diff2, DiffableUtils.KeySerializer<K> keySerializer) Merges two map diffs into one unified diff with write-only value serializer.static <K,T, T1 extends T, T2 extends T, M extends Map<K, T>>
DiffableUtils.MapDiff<K, T, M> merge(DiffableUtils.MapDiff<K, T1, ? extends ImmutableOpenMap<K, T1>> diff1, DiffableUtils.MapDiff<K, T2, ? extends ImmutableOpenMap<K, T2>> diff2, DiffableUtils.KeySerializer<K> keySerializer, DiffableUtils.ValueSerializer<K, T> valueSerializer) Merges two map diffs into one unified diff.static <K,T extends Diffable<T>>
DiffableUtils.MapDiff<K, T, ImmutableOpenMap<K, T>> readImmutableOpenMapDiff(StreamInput in, DiffableUtils.KeySerializer<K> keySerializer, DiffableUtils.DiffableValueReader<K, T> diffableValueReader) Loads an object that represents difference between two ImmutableOpenMaps of Diffable objects using Diffable proto objectstatic <K,T> DiffableUtils.MapDiff <K, T, ImmutableOpenMap<K, T>> readImmutableOpenMapDiff(StreamInput in, DiffableUtils.KeySerializer<K> keySerializer, DiffableUtils.ValueSerializer<K, T> valueSerializer) Loads an object that represents difference between two ImmutableOpenMapsstatic <K,T> DiffableUtils.MapDiff <K, T, Map<K, T>> readJdkMapDiff(StreamInput in, DiffableUtils.KeySerializer<K> keySerializer, DiffableUtils.ValueSerializer<K, T> valueSerializer) Loads an object that represents difference between two Maps of Diffable objectsstatic <K,T extends Diffable<T>>
DiffableUtils.MapDiff<K, T, Map<K, T>> readJdkMapDiff(StreamInput in, DiffableUtils.KeySerializer<K> keySerializer, Writeable.Reader<T> reader, Writeable.Reader<Diff<T>> diffReader) Loads an object that represents difference between two Maps of Diffable objects using Diffable proto objectstatic <K,T, M extends Map<K, T>>
DiffableUtils.MapDiff<K, T, M> removeKeys(DiffableUtils.MapDiff<K, T, M> diff, Set<K> keys) Create a new MapDiff by removing the keys from any of its deletes, diffs and upsertsstatic <K,T extends Diffable<T>, M extends Map<K, T>>
DiffableUtils.MapDiff<K, T, M> singleDeleteDiff(K key, DiffableUtils.KeySerializer<K> keySerializer) Creates a MapDiff that applies a single entry deletion to a mapstatic <K,T extends Diffable<T>, M extends Map<K, T>>
DiffableUtils.MapDiff<K, T, M> singleEntryDiff(K key, Diff<T> diff, DiffableUtils.KeySerializer<K> keySerializer) Creates a MapDiff that applies a single entry diff to a mapstatic <K,T extends Diffable<T>, M extends Map<K, T>>
DiffableUtils.MapDiff<K, T, M> singleUpsertDiff(K key, T entry, DiffableUtils.KeySerializer<K> keySerializer) Creates a MapDiff that applies a single entry upsert to a mapstatic <K,T, T1 extends T, T2 extends T>
Tuple<DiffableUtils.MapDiff<K, T1, ImmutableOpenMap<K, T1>>, DiffableUtils.MapDiff<K, T2, ImmutableOpenMap<K, T2>>> split(DiffableUtils.MapDiff<K, T, ? extends Map<K, T>> diff, Predicate<K> keysT1, DiffableUtils.ValueSerializer<K, T1> serializer1, Predicate<K> keysT2, DiffableUtils.ValueSerializer<K, T2> serializer2) Split one map diff into two distinct map diffs, based on which serializer accepts a key.static <K,T, M extends Map<K, T>>
DiffableUtils.MapDiff<K, T, M> updateDiffsAndUpserts(DiffableUtils.MapDiff<K, T, M> diff, Predicate<K> keyPredicate, BiFunction<K, Diff<T>, Diff<T>> diffUpdateFunction, BiFunction<K, T, T> upsertUpdateFunction) Create a new MapDiff from the specified MapDiff by transforming its diffs with the provided diffUpdateFunction as well as transforming its upserts with the provided upsertUpdateFunction.
-
Method Details
-
getStringKeySerializer
Returns a map key serializer for String keys -
getIntKeySerializer
Returns a map key serializer for Integer keys. Encodes as Int. -
getVIntKeySerializer
Returns a map key serializer for Integer keys. Encodes as VInt. -
getWriteableKeySerializer
public static <W extends Writeable> DiffableUtils.KeySerializer<W> getWriteableKeySerializer(Writeable.Reader<W> reader) Returns a map key serializer forWriteablekeys. -
diff
public static <K,T extends Diffable<T>, DiffableUtils.MapDiff<K,M extends Map<K, T>> T, diffM> (M before, M after, DiffableUtils.KeySerializer<K> keySerializer) Calculates diff between two Maps of Diffable objects. -
diff
public static <K,T, DiffableUtils.MapDiff<K,M extends Map<K, T>> T, diffM> (M before, M after, DiffableUtils.KeySerializer<K> keySerializer, DiffableUtils.ValueSerializer<K, T> valueSerializer) Calculates diff between two Maps of non-diffable objects -
emptyDiff
-
merge
public static <K,T extends Diffable<T>, DiffableUtils.MapDiff<K,T1 extends T, T2 extends T, M extends Map<K, T>> T, mergeM> (DiffableUtils.MapDiff<K, T1, ? extends ImmutableOpenMap<K, T1>> diff1, DiffableUtils.MapDiff<K, T2, ? extends ImmutableOpenMap<K, T2>> diff2, DiffableUtils.KeySerializer<K> keySerializer) Merges two map diffs into one unified diff with write-only value serializer. -
merge
public static <K,T, DiffableUtils.MapDiff<K,T1 extends T, T2 extends T, M extends Map<K, T>> T, mergeM> (DiffableUtils.MapDiff<K, T1, ? extends ImmutableOpenMap<K, T1>> diff1, DiffableUtils.MapDiff<K, T2, ? extends ImmutableOpenMap<K, T2>> diff2, DiffableUtils.KeySerializer<K> keySerializer, DiffableUtils.ValueSerializer<K, T> valueSerializer) Merges two map diffs into one unified diff. -
removeKeys
public static <K,T, DiffableUtils.MapDiff<K,M extends Map<K, T>> T, removeKeysM> (DiffableUtils.MapDiff<K, T, M> diff, Set<K> keys) Create a new MapDiff by removing the keys from any of its deletes, diffs and upserts -
hasKey
Check whether the specified MapDiff has any changes associated with the specified key -
updateDiffsAndUpserts
public static <K,T, DiffableUtils.MapDiff<K,M extends Map<K, T>> T, updateDiffsAndUpsertsM> (DiffableUtils.MapDiff<K, T, M> diff, Predicate<K> keyPredicate, BiFunction<K, Diff<T>, Diff<T>> diffUpdateFunction, BiFunction<K, T, T> upsertUpdateFunction) Create a new MapDiff from the specified MapDiff by transforming its diffs with the provided diffUpdateFunction as well as transforming its upserts with the provided upsertUpdateFunction. Whether an entry should be transformed is determined by the specified keyPredicate.- Parameters:
diff- The original MapDiffkeyPredicate- Determines whether an entry should be transformeddiffUpdateFunction- A function to transform a Diff entryupsertUpdateFunction- A function to transform an upsert entry- Returns:
- A new MapDiff as a result of the transformation
-
jdkMapDiffWithUpdatedKeys
public static <K1,K2, DiffableUtils.MapDiff<K2,T extends Diffable<T>, M1 extends Map<K1, T>> T, jdkMapDiffWithUpdatedKeysMap<K2, T>> (DiffableUtils.MapDiff<K1, T, M1> diff, Function<K1, K2> keyFunction, DiffableUtils.KeySerializer<K2> keySerializer) Create a new JDK map backed MapDiff by transforming the keys with the provided keyFunction.- Parameters:
diff- Original MapDiff to transformkeyFunction- Function to transform the keykeySerializer- Serializer for the new key
-
singleEntryDiff
public static <K,T extends Diffable<T>, DiffableUtils.MapDiff<K,M extends Map<K, T>> T, singleEntryDiffM> (K key, Diff<T> diff, DiffableUtils.KeySerializer<K> keySerializer) Creates a MapDiff that applies a single entry diff to a map -
singleDeleteDiff
public static <K,T extends Diffable<T>, DiffableUtils.MapDiff<K,M extends Map<K, T>> T, singleDeleteDiffM> (K key, DiffableUtils.KeySerializer<K> keySerializer) Creates a MapDiff that applies a single entry deletion to a map -
singleUpsertDiff
public static <K,T extends Diffable<T>, DiffableUtils.MapDiff<K,M extends Map<K, T>> T, singleUpsertDiffM> (K key, T entry, DiffableUtils.KeySerializer<K> keySerializer) Creates a MapDiff that applies a single entry upsert to a map -
split
public static <K,T, Tuple<DiffableUtils.MapDiff<K,T1 extends T, T2 extends T> T1, splitImmutableOpenMap<K, T1>>, DiffableUtils.MapDiff<K, T2, ImmutableOpenMap<K, T2>>> (DiffableUtils.MapDiff<K, T, ? extends Map<K, T>> diff, Predicate<K> keysT1, DiffableUtils.ValueSerializer<K, T1> serializer1, Predicate<K> keysT2, DiffableUtils.ValueSerializer<K, T2> serializer2) Split one map diff into two distinct map diffs, based on which serializer accepts a key. If both serializers accept a key, the first serializer will be used. -
readImmutableOpenMapDiff
public static <K,T> DiffableUtils.MapDiff<K,T, readImmutableOpenMapDiffImmutableOpenMap<K, T>> (StreamInput in, DiffableUtils.KeySerializer<K> keySerializer, DiffableUtils.ValueSerializer<K, T> valueSerializer) throws IOExceptionLoads an object that represents difference between two ImmutableOpenMaps- Throws:
IOException
-
readJdkMapDiff
public static <K,T> DiffableUtils.MapDiff<K,T, readJdkMapDiffMap<K, T>> (StreamInput in, DiffableUtils.KeySerializer<K> keySerializer, DiffableUtils.ValueSerializer<K, T> valueSerializer) throws IOExceptionLoads an object that represents difference between two Maps of Diffable objects- Throws:
IOException
-
readImmutableOpenMapDiff
public static <K,T extends Diffable<T>> DiffableUtils.MapDiff<K,T, readImmutableOpenMapDiffImmutableOpenMap<K, T>> (StreamInput in, DiffableUtils.KeySerializer<K> keySerializer, DiffableUtils.DiffableValueReader<K, T> diffableValueReader) throws IOExceptionLoads an object that represents difference between two ImmutableOpenMaps of Diffable objects using Diffable proto object- Throws:
IOException
-
readJdkMapDiff
public static <K,T extends Diffable<T>> DiffableUtils.MapDiff<K,T, readJdkMapDiffMap<K, T>> (StreamInput in, DiffableUtils.KeySerializer<K> keySerializer, Writeable.Reader<T> reader, Writeable.Reader<Diff<T>> diffReader) throws IOException Loads an object that represents difference between two Maps of Diffable objects using Diffable proto object- Throws:
IOException
-