Class CardinalityCompositeSpec

java.lang.Object
com.bazaarvoice.jolt.cardinality.CardinalitySpec
com.bazaarvoice.jolt.cardinality.CardinalityCompositeSpec
All Implemented Interfaces:
BaseSpec

public class CardinalityCompositeSpec extends CardinalitySpec
CardinalitySpec that has children, which it builds and then manages during Transforms.
  • Field Details

  • Constructor Details

  • Method Details

    • createChildren

      private static List<CardinalitySpec> createChildren(Map<String,Object> rawSpec)
      Recursively walk the spec input tree.
    • applyCardinality

      public boolean applyCardinality(String inputKey, Object input, WalkedPath walkedPath, Object parentContainer)
      If this Spec matches the inputkey, then perform one step in the parallel treewalk.

      Step one level down the input "tree" by carefully handling the List/Map nature the input to get the "one level down" data.

      Step one level down the Spec tree by carefully and efficiently applying our children to the "one level down" data.

      Specified by:
      applyCardinality in class CardinalitySpec
      Returns:
      true if this this spec "handles" the inputkey such that no sibling specs need to see it
    • process

      private void process(Object input, WalkedPath walkedPath)
    • applyKeyToLiteralAndComputed

      private static void applyKeyToLiteralAndComputed(CardinalityCompositeSpec spec, String subKeyStr, Object subInput, WalkedPath walkedPath, Object input)
      This method implements the Cardinality matching behavior when we have both literal and computed children.

      For each input key, we see if it matches a literal, and it not, try to match the key with every computed child.