public interface Path extends Cloneable, Iterable<Object>
Graph
as defined by a Traversal
.
In abstraction, any Path implementation maintains two lists: a list of sets of labels and a list of objects.
The list of labels are the labels of the steps traversed. The list of objects are the objects traversed.Modifier and Type | Interface and Description |
---|---|
static class |
Path.Exceptions |
Modifier and Type | Method and Description |
---|---|
Path |
clone() |
Path |
extend(Object object,
Set<String> labels)
Add a new step to the path with an object and any number of associated labels.
|
Path |
extend(Set<String> labels)
Add labels to the head of the path.
|
default void |
forEach(BiConsumer<Object,Set<String>> consumer) |
default <A> A |
get(int index)
Get the object associated with the specified index into the path.
|
default <A> A |
get(Pop pop,
String label)
Pop the object(s) associated with the label of the path.
|
default <A> A |
get(String label)
Get the object associated with the particular label of the path.
|
default boolean |
hasLabel(String label)
Return true if the path has the specified label, else return false.
|
default <A> A |
head()
Get the head of the path.
|
default boolean |
isEmpty()
Determine if the path is empty or not.
|
default boolean |
isSimple()
Determines whether the path is a simple or not.
|
default Iterator<Object> |
iterator() |
List<Set<String>> |
labels()
An ordered list of the labels associated with the path
The set of labels for a particular step are ordered by the order in which
extend(Object, Set) was called. |
List<Object> |
objects()
An ordered list of the objects in the path.
|
default boolean |
popEquals(Pop pop,
Object other) |
Path |
retract(Set<String> labels)
Remove labels from path.
|
default int |
size()
Get the number of step in the path.
|
default Stream<<any>> |
stream() |
default Path |
subPath(String fromLabel,
String toLabel)
Isolate a sub-path from the path object.
|
forEach, spliterator
default int size()
default boolean isEmpty()
default <A> A head()
A
- the type of the head of the pathPath extend(Object object, Set<String> labels)
object
- the new head of the pathlabels
- the labels at the head of the pathPath extend(Set<String> labels)
labels
- the labels at the head of the pathPath retract(Set<String> labels)
labels
- the labels to removedefault <A> A get(String label) throws IllegalArgumentException
List
of those objects.A
- the type of the object associated with the labellabel
- the label of the pathIllegalArgumentException
- if the path does not contain the labeldefault <A> A get(Pop pop, String label) throws IllegalArgumentException
A
- the type of the object associated with the labelpop
- first for least recent, last for most recent, and all for all in a listlabel
- the label of the pathIllegalArgumentException
- if the path does not contain the labeldefault <A> A get(int index)
A
- the type of the object associated with the indexindex
- the index of the pathdefault boolean hasLabel(String label)
label
- the label to search forList<Object> objects()
List<Set<String>> labels()
extend(Object, Set)
was called.Path clone()
default boolean isSimple()
default void forEach(BiConsumer<Object,Set<String>> consumer)
default Stream<<any>> stream()
default Path subPath(String fromLabel, String toLabel)
a,[b,c],d
.
Note that if there are multiple path segments with the same label, then its the last occurrence that is isolated.
For instance, from "b" to "c" would be a,b,[b,c,d,c]
.fromLabel
- The label to start recording the sub-path from.toLabel
- The label to end recording the sub-path to.Copyright © 2013–2020 Apache Software Foundation. All rights reserved.