com.google.appengine.api.search.query
Class QueryTreeWalker<T extends QueryTreeContext<T>>
java.lang.Object
com.google.appengine.api.search.query.QueryTreeWalker<T>
- Type Parameters:
T - the context used by the visitor
public class QueryTreeWalker<T extends QueryTreeContext<T>>
- extends java.lang.Object
The walking of the query tree. This class takes care of visiting
a tree resulting from parsing a query. As it traverses the tree
it calls appropriate methods of the visitor, set at the construction
time. The class uses a depth-first search, visiting all children
of a node, before visiting the node. The visit is done by calling
an appropriate method of the visitor. Typical code should match
the following pattern:
class MyVisitor implements QueryTreeVisitor {
...
}
class MyContext extends QueryTreeContext<MyContext> {
...
@Override
protected MyContext newChildContext() {
return new MyContext();
}
}
MyContext context = new MyContext();
QueryTreeWalker<MyContext> walker = new QueryTreeWalker<MyContext>(new MyVisitor());
Tree root = parser.query(queryStr);
walker.walk(root, context);
// retrieve whatever information you need from context
|
Method Summary |
static Tree |
simplify(Tree tree)
|
void |
walk(Tree tree,
T context)
|
| Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
QueryTreeWalker
public QueryTreeWalker(QueryTreeVisitor<T> visitor)
- Creates a new query walker that calls the given
visitor.
- Parameters:
visitor - the visitor to be called by this walker
walk
public void walk(Tree tree,
T context)
throws QueryTreeException
- Parameters:
tree - the tree to be walkedcontext - the context in which the tree is walked
- Throws:
QueryTreeException
simplify
public static Tree simplify(Tree tree)