ArrayCreatingInputMerger

public final class ArrayCreatingInputMerger extends InputMerger


An InputMerger that attempts to merge the inputs, creating arrays when necessary. For each input, we look at each key:

  • If this is the first time we encountered the key:

    • If it's an array, put it in the output

    • If it's a primitive, turn it into a size 1 array and put it in the output

  • Else (we have encountered the key before):

    • If the value type matches the old value type:

      • If they are arrays, concatenate them

      • If they are primitives, turn them into a size 2 array

    • Else if one is an array and the other is a primitive of that type:

      • Make a longer array and concatenate them

    • Else throw an IllegalArgumentException because the types don't match.

If a value by a key is null, it is considered to have type String, because it is the only nullable typed allowed in Data.

Summary

Public constructors

Public methods

@NonNull Data
merge(List<Data> inputs)

Merges a list of Data and outputs a single Data object.

Public constructors

ArrayCreatingInputMerger

public final ArrayCreatingInputMerger()

Public methods

merge

public @NonNull Data merge(List<Data> inputs)

Merges a list of Data and outputs a single Data object.

Parameters
List<Data> inputs

A list of Data

Returns
@NonNull Data

The merged output