public abstract class Traversr<DataType>
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private TraversalStep |
root |
private int |
traversalLength |
Constructor and Description |
---|
Traversr(java.util.List<java.lang.String> paths)
Constructor where we provide a known good set of pathElement Strings in a list.
|
Traversr(java.lang.String humanPath) |
Modifier and Type | Method and Description |
---|---|
Optional<DataType> |
get(java.lang.Object tree,
java.util.List<java.lang.String> keys)
Note : Calling this method MAY modify the tree object by adding new Maps and Lists as needed
for the traversal.
|
abstract Optional<DataType> |
handleFinalSet(TraversalStep traversalStep,
java.lang.Object tree,
java.lang.String key,
DataType data)
Allow subclasses to control how "sets" are done, if/once the traversal has made it to the the last element.
|
abstract Optional<DataType> |
handleIntermediateGet(TraversalStep traversalStep,
java.lang.Object tree,
java.lang.String key,
TraversalStep.Operation op)
Allow subclasses to control how gets are handled for intermediate traversals.
|
private TraversalStep |
makePathElement(java.lang.String path,
TraversalStep child) |
Optional<DataType> |
remove(java.lang.Object tree,
java.util.List<java.lang.String> keys)
Note : Calling this method MAY modify the tree object by adding new Maps and Lists as needed
for the traversal.
|
Optional<DataType> |
set(java.lang.Object tree,
java.util.List<java.lang.String> keys,
DataType data) |
private final TraversalStep root
private final int traversalLength
public Traversr(java.lang.String humanPath)
public Traversr(java.util.List<java.lang.String> paths)
private TraversalStep makePathElement(java.lang.String path, TraversalStep child)
public Optional<DataType> get(java.lang.Object tree, java.util.List<java.lang.String> keys)
public Optional<DataType> set(java.lang.Object tree, java.util.List<java.lang.String> keys, DataType data)
tree
- tree of Map and List JSON structure to navigatedata
- JSON style data object you want to setpublic Optional<DataType> remove(java.lang.Object tree, java.util.List<java.lang.String> keys)
public abstract Optional<DataType> handleFinalSet(TraversalStep traversalStep, java.lang.Object tree, java.lang.String key, DataType data)
public abstract Optional<DataType> handleIntermediateGet(TraversalStep traversalStep, java.lang.Object tree, java.lang.String key, TraversalStep.Operation op)