Class StarDoublePathElement

    • Field Summary

      Fields 
      Modifier and Type Field Description
      private java.lang.String mid  
      private java.lang.String prefix  
      private java.lang.String suffix  
    • Constructor Summary

      Constructors 
      Constructor Description
      StarDoublePathElement​(java.lang.String key)
      +
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private int finMidIndex​(java.lang.String literal)
      The assumption here is: * means 1 or more characters.
      java.lang.String getCanonicalForm()
      Get the canonical form of this PathElement.
      MatchedElement match​(java.lang.String dataKey, WalkedPath walkedPath)
      See if this PathElement matches the given dataKey.
      boolean stringMatch​(java.lang.String literal)
      Method to see if a candidate key would match this PathElement.
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • prefix

        private final java.lang.String prefix
      • suffix

        private final java.lang.String suffix
      • mid

        private final java.lang.String mid
    • Constructor Detail

      • StarDoublePathElement

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

      • stringMatch

        public boolean stringMatch​(java.lang.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​(java.lang.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​(java.lang.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 java.lang.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 "&" to "&0(0)".
        Specified by:
        getCanonicalForm in interface PathElement
        Returns:
        canonical String version of this PathElement