public abstract class ReferenceWalker<T> extends Object
A walker for walking through an object reference structure (e.g. an execution tree).
Any visited element can have any number of following elements. The elements are visited
with a breadth-first approach: The walker maintains a list of next elements to which it adds
a new elements at the end whenever it has visited an element. The walker stops when it encounters
an element that fulfills the given ReferenceWalker.WalkCondition.
Subclasses define the type of objects and provide the walking behavior.
| Modifier and Type | Class and Description |
|---|---|
static class |
ReferenceWalker.NullCondition<S> |
static interface |
ReferenceWalker.WalkCondition<S> |
| Modifier and Type | Field and Description |
|---|---|
protected List<T> |
currentElements |
protected List<TreeVisitor<T>> |
postVisitor |
protected List<TreeVisitor<T>> |
preVisitor |
| Constructor and Description |
|---|
ReferenceWalker(List<T> initialElements) |
ReferenceWalker(T initialElement) |
| Modifier and Type | Method and Description |
|---|---|
ReferenceWalker<T> |
addPostVisitor(TreeVisitor<T> collector) |
ReferenceWalker<T> |
addPreVisitor(TreeVisitor<T> collector) |
T |
getCurrentElement() |
protected abstract Collection<T> |
nextElements() |
T |
walkUntil() |
T |
walkUntil(ReferenceWalker.WalkCondition<T> condition) |
T |
walkWhile() |
T |
walkWhile(ReferenceWalker.WalkCondition<T> condition) |
protected List<TreeVisitor<T>> preVisitor
protected List<TreeVisitor<T>> postVisitor
public ReferenceWalker(T initialElement)
protected abstract Collection<T> nextElements()
public ReferenceWalker<T> addPreVisitor(TreeVisitor<T> collector)
public ReferenceWalker<T> addPostVisitor(TreeVisitor<T> collector)
public T walkWhile()
public T walkUntil()
public T walkWhile(ReferenceWalker.WalkCondition<T> condition)
public T walkUntil(ReferenceWalker.WalkCondition<T> condition)
public T getCurrentElement()
Copyright © 2021. All rights reserved.