ArrayCreatingInputMerger

class ArrayCreatingInputMerger : 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 functions

open Data
merge(inputs: List<Data>)

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

Public constructors

ArrayCreatingInputMerger

Added in 1.0.0
ArrayCreatingInputMerger()

Public functions

merge

open fun merge(inputs: List<Data>): Data

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

Parameters
inputs: List<Data>

A list of Data

Returns
Data

The merged output