public abstract class ModifierSpec extends java.lang.Object implements BaseSpec
Modifier and Type | Field and Description |
---|---|
protected boolean |
checkValue |
protected OpMode |
opMode |
protected MatchablePathElement |
pathElement |
protected static TraversalBuilder |
TRAVERSAL_BUILDER |
Modifier | Constructor and Description |
---|---|
protected |
ModifierSpec(java.lang.String rawJsonKey,
OpMode opMode)
Builds LHS pathElement and validates to specification
|
Modifier and Type | Method and Description |
---|---|
boolean |
apply(java.lang.String inputKey,
Optional<java.lang.Object> inputOptional,
WalkedPath walkedPath,
java.util.Map<java.lang.String,java.lang.Object> output,
java.util.Map<java.lang.String,java.lang.Object> context)
This is the main recursive method of the Shiftr/Templatr/Cardinality parallel "spec" and "input" tree walk.
|
protected abstract void |
applyElement(java.lang.String key,
Optional<java.lang.Object> inputOptional,
MatchedElement thisLevel,
WalkedPath walkedPath,
java.util.Map<java.lang.String,java.lang.Object> context)
Templatr specific override that is used in BaseSpec#apply(...)
The name is changed for easy identification during debugging
|
MatchablePathElement |
getPathElement()
Gimme the LHS path element
|
protected static void |
setData(java.lang.Object parent,
MatchedElement matchedElement,
java.lang.Object value,
OpMode opMode)
Static utility method for facilitating writes on input object
|
protected static final TraversalBuilder TRAVERSAL_BUILDER
protected final OpMode opMode
protected final MatchablePathElement pathElement
protected final boolean checkValue
protected ModifierSpec(java.lang.String rawJsonKey, OpMode opMode)
public MatchablePathElement getPathElement()
BaseSpec
getPathElement
in interface BaseSpec
public boolean apply(java.lang.String inputKey, Optional<java.lang.Object> inputOptional, WalkedPath walkedPath, java.util.Map<java.lang.String,java.lang.Object> output, java.util.Map<java.lang.String,java.lang.Object> context)
BaseSpec
protected abstract void applyElement(java.lang.String key, Optional<java.lang.Object> inputOptional, MatchedElement thisLevel, WalkedPath walkedPath, java.util.Map<java.lang.String,java.lang.Object> context)
protected static void setData(java.lang.Object parent, MatchedElement matchedElement, java.lang.Object value, OpMode opMode)
parent
- the source objectmatchedElement
- the current spec (leaf) element that was matched with inputvalue
- to writeopMode
- to determine if write is applicable