Class AmpPathElement

java.lang.Object
com.bazaarvoice.jolt.common.pathelement.BasePathElement
com.bazaarvoice.jolt.common.pathelement.AmpPathElement
All Implemented Interfaces:
EvaluatablePathElement, MatchablePathElement, PathElement

public class AmpPathElement extends BasePathElement implements MatchablePathElement, EvaluatablePathElement
PathElement class that handles keys with invalid input: '&' values, like input: "photos-invalid input: '&'(1,1)"" It breaks down the string into a series of String or Reference tokens, that can be used to 1) match input like "photos-5" where "invalid input: '&'(1,1)" evaluated to 5
  • Field Details

    • tokens

      private final List<Object> tokens
    • canonicalForm

      private final String canonicalForm
  • Constructor Details

    • AmpPathElement

      public AmpPathElement(String key)
  • Method Details

    • findEndOfReference

      private static int findEndOfReference(String key)
    • getCanonicalForm

      public String getCanonicalForm()
      Description copied from interface: PathElement
      Get the canonical form of this PathElement. Really only interesting for the Reference Path element, where it will expand "invalid input: '&'" to "invalid input: '&'0(0)".
      Specified by:
      getCanonicalForm in interface PathElement
      Returns:
      canonical String version of this PathElement
    • getTokens

      public List<Object> getTokens()
    • evaluate

      public String evaluate(WalkedPath walkedPath)
      Description copied from interface: EvaluatablePathElement
      Evaluate this key as if it is an write path element.
      Specified by:
      evaluate in interface EvaluatablePathElement
      Parameters:
      walkedPath - "up the tree" list of LiteralPathElements, that may be used by this key as it is computing
      Returns:
      String path element to use for write tree building
    • match

      public MatchedElement match(String dataKey, WalkedPath walkedPath)
      Description copied from interface: MatchablePathElement
      See if this PathElement matches the given dataKey. If it does not match, this method returns null. If this PathElement does match, it returns a LiteralPathElement with subKeys filled in.
      Specified by:
      match in interface MatchablePathElement
      Parameters:
      dataKey - String key value from the input data
      walkedPath - "up the tree" list of LiteralPathElements, that may be used by this key as it is computing its match
      Returns:
      null or a matched LiteralPathElement