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.
-
-
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 com.bazaarvoice.jolt.common.pathelement.BasePathElement
getRawKey, toString
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.bazaarvoice.jolt.common.pathelement.PathElement
getRawKey
-
-
-
-
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 interfaceStarPathElement
- 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 interfaceMatchablePathElement
- Parameters:
dataKey
- String key value from the input datawalkedPath
- "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 interfacePathElement
- Returns:
- canonical String version of this PathElement
-
-