Class StarDoublePathElement

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

public class StarDoublePathElement extends BasePathElement implements StarPathElement
PathElement for the a double "*" wildcard such as tag-*-*. In this case we can avoid doing any regex work by doing String begins, ends and mid element exists.
  • Field Details

    • prefix

      private final String prefix
    • suffix

      private final String suffix
    • mid

      private final String mid
  • Constructor Details

    • StarDoublePathElement

      public StarDoublePathElement(String key)
      +
      Parameters:
      key - : should be a String with two "*" elements.
  • Method Details

    • stringMatch

      public boolean stringMatch(String literal)
      Description copied from interface: StarPathElement
      Method to see if a candidate key would match this PathElement.
      Specified by:
      stringMatch in interface StarPathElement
      Parameters:
      literal - test to see if the provided string will match this Element's regex
      Returns:
      true if the provided literal will match this Element's regex
    • finMidIndex

      private int finMidIndex(String literal)
      The assumption here is: * means 1 or more characters. So, if we can find the mid 1 char after the prefix ends and 1 char before the suffix starts, we have found a mid match. Also, it will be the first occurrence of the mid in the literal, so we are not 'greedy' to capture as much as in the '*'
    • 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
    • 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