it.unimi.dsi.mg4j.query.nodes
Class AbstractTermExpander.ExpanderVisitor

java.lang.Object
  extended by it.unimi.dsi.mg4j.query.nodes.AbstractTermExpander.ExpanderVisitor
All Implemented Interfaces:
FlyweightPrototype<QueryBuilderVisitor<Query>>, QueryBuilderVisitor<Query>
Enclosing class:
AbstractTermExpander

protected class AbstractTermExpander.ExpanderVisitor
extends Object
implements QueryBuilderVisitor<Query>


Constructor Summary
protected AbstractTermExpander.ExpanderVisitor()
           
 
Method Summary
 QueryBuilderVisitor<Query> copy()
           
 Query[] newArray(int len)
          Builds an array of given length of type T.
 QueryBuilderVisitor<Query> prepare()
          Prepares the internal state of this visitor for a(nother) visit.
 Query visit(Prefix node)
          Visits a Prefix.
 Query visit(Range node)
          Visits a Range.
 Query visit(Term node)
          Visits a Term.
 Query visitPost(Align node, Query[] subNode)
          Visits an Align node after recursing into the corresponding subtree.
 Query visitPost(And node, Query[] subNode)
          Visits an And node after recursing into the corresponding subtree.
 Query visitPost(Consecutive node, Query[] subNode)
          Visits a Consecutive node after recursing into the corresponding subtree.
 Query visitPost(Difference node, Query[] subNode)
          Visits an Difference node after recursing into the corresponding subtree.
 Query visitPost(LowPass node, Query subNode)
          Visits a LowPass node after recursing into the corresponding subtree.
 Query visitPost(MultiTerm node, Query[] subNode)
          Visits a MultiTerm node after recursing into the corresponding subtree.
 Query visitPost(Not node, Query subNode)
          Visits a Not node after recursing into the corresponding subtree.
 Query visitPost(OrderedAnd node, Query[] subNode)
          Visits an OrderedAnd node after recursing into the corresponding subtree.
 Query visitPost(Or node, Query[] subNode)
          Visits an Or node after recursing into the corresponding subtree.
 Query visitPost(Select node, Query subNode)
          Visits a Select node after recursing into the corresponding subtree.
 boolean visitPre(Align node)
          Visits an Align node before recursing into the corresponding subtree.
 boolean visitPre(And node)
          Visits an And node before recursing into the corresponding subtree.
 boolean visitPre(Consecutive node)
          Visits a Consecutive node before recursing into the corresponding subtree.
 boolean visitPre(Difference node)
          Visits an Difference node before recursing into the corresponding subtree.
 boolean visitPre(LowPass node)
          Visits a LowPass node before recursing into the corresponding subtree.
 boolean visitPre(MultiTerm node)
          Visits a MultiTerm node before recursing into the corresponding subtree.
 boolean visitPre(Not node)
          Visits a Not node before recursing into the corresponding subtree.
 boolean visitPre(Or node)
          Visits an Or node before recursing into the corresponding subtree.
 boolean visitPre(OrderedAnd node)
          Visits an OrderedAnd node before recursing into the corresponding subtree.
 boolean visitPre(Select node)
          Visits a Select node before recursing into the corresponding subtree.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AbstractTermExpander.ExpanderVisitor

protected AbstractTermExpander.ExpanderVisitor()
Method Detail

copy

public QueryBuilderVisitor<Query> copy()
Specified by:
copy in interface FlyweightPrototype<QueryBuilderVisitor<Query>>
Specified by:
copy in interface QueryBuilderVisitor<Query>

newArray

public Query[] newArray(int len)
Description copied from interface: QueryBuilderVisitor
Builds an array of given length of type T.

Because of erasure, generic classes in Java cannot allocate arrays of generic types. This impossibility can be a problem if for some reason the visitPost() methods expect an actual array of type T. This method must provide an array of given length that is an acceptable input for all visitPost() methods.

Note that by declaring an implementing class of this interface that has a sole constructor accepting an argument of type Class<T>, you will force the user to provide the class of the generic type, opening the way for the reflective methods in Array.

Specified by:
newArray in interface QueryBuilderVisitor<Query>
Parameters:
len - the required array length.
Returns:
an array of type T of length len.

prepare

public QueryBuilderVisitor<Query> prepare()
Description copied from interface: QueryBuilderVisitor
Prepares the internal state of this visitor for a(nother) visit.

By specification, it must be safe to call this method any number of times.

Specified by:
prepare in interface QueryBuilderVisitor<Query>
Returns:
this visitor.

visit

public Query visit(Term node)
            throws QueryBuilderVisitorException
Description copied from interface: QueryBuilderVisitor
Visits a Term.

Specified by:
visit in interface QueryBuilderVisitor<Query>
Parameters:
node - the leaf to be visited.
Returns:
true if the visit should continue.
Throws:
QueryBuilderVisitorException

visit

public Query visit(Prefix node)
            throws QueryBuilderVisitorException
Description copied from interface: QueryBuilderVisitor
Visits a Prefix.

Specified by:
visit in interface QueryBuilderVisitor<Query>
Parameters:
node - the leaf to be visited.
Returns:
an appropriate return value (usually, the object built using the elements in subNode) if the visit should continue, or null.
Throws:
QueryBuilderVisitorException

visit

public Query visit(Range node)
            throws QueryBuilderVisitorException
Description copied from interface: QueryBuilderVisitor
Visits a Range.

Specified by:
visit in interface QueryBuilderVisitor<Query>
Parameters:
node - the leaf to be visited.
Returns:
true if the visit should continue.
Throws:
QueryBuilderVisitorException

visitPost

public Query visitPost(And node,
                       Query[] subNode)
                throws QueryBuilderVisitorException
Description copied from interface: QueryBuilderVisitor
Visits an And node after recursing into the corresponding subtree.

Specified by:
visitPost in interface QueryBuilderVisitor<Query>
Parameters:
node - the internal node to be visited.
subNode - the array of results returned by subnodes.
Returns:
an appropriate return value (usually, the object built using the elements in subNode) if the visit should continue, or null.
Throws:
QueryBuilderVisitorException

visitPost

public Query visitPost(Consecutive node,
                       Query[] subNode)
                throws QueryBuilderVisitorException
Description copied from interface: QueryBuilderVisitor
Visits a Consecutive node after recursing into the corresponding subtree.

Specified by:
visitPost in interface QueryBuilderVisitor<Query>
Parameters:
node - the internal node to be visited.
subNode - the array of results returned by subnodes.
Returns:
an appropriate return value (usually, the object built using the elements in subNode) if the visit should continue, or null.
Throws:
QueryBuilderVisitorException

visitPost

public Query visitPost(LowPass node,
                       Query subNode)
                throws QueryBuilderVisitorException
Description copied from interface: QueryBuilderVisitor
Visits a LowPass node after recursing into the corresponding subtree.

Specified by:
visitPost in interface QueryBuilderVisitor<Query>
Parameters:
node - the internal node to be visited.
subNode - the of result returned by the sole subnode.
Returns:
an appropriate return value (usually, the object built using subNode) if the visit should continue, or null.
Throws:
QueryBuilderVisitorException

visitPost

public Query visitPost(Not node,
                       Query subNode)
                throws QueryBuilderVisitorException
Description copied from interface: QueryBuilderVisitor
Visits a Not node after recursing into the corresponding subtree.

Specified by:
visitPost in interface QueryBuilderVisitor<Query>
Parameters:
node - the internal node to be visited.
subNode - the of result returned by the sole subnode.
Returns:
an appropriate return value (usually, the object built using subNode) if the visit should continue, or null.
Throws:
QueryBuilderVisitorException

visitPost

public Query visitPost(Or node,
                       Query[] subNode)
                throws QueryBuilderVisitorException
Description copied from interface: QueryBuilderVisitor
Visits an Or node after recursing into the corresponding subtree.

Specified by:
visitPost in interface QueryBuilderVisitor<Query>
Parameters:
node - the internal node to be visited.
Returns:
an appropriate return value (usually, the object built using the elements in subNode) if the visit should continue, or null.
Throws:
QueryBuilderVisitorException

visitPost

public Query visitPost(OrderedAnd node,
                       Query[] subNode)
                throws QueryBuilderVisitorException
Description copied from interface: QueryBuilderVisitor
Visits an OrderedAnd node after recursing into the corresponding subtree.

Specified by:
visitPost in interface QueryBuilderVisitor<Query>
Parameters:
node - the internal node to be visited.
subNode - the array of results returned by subnodes.
Returns:
an appropriate return value (usually, the object built using the elements in subNode) if the visit should continue, or null.
Throws:
QueryBuilderVisitorException

visitPost

public Query visitPost(Align node,
                       Query[] subNode)
                throws QueryBuilderVisitorException
Description copied from interface: QueryBuilderVisitor
Visits an Align node after recursing into the corresponding subtree.

Specified by:
visitPost in interface QueryBuilderVisitor<Query>
Parameters:
node - the internal node to be visited.
subNode - the array of results returned by subnodes.
Returns:
an appropriate return value (usually, the object built using the elements in subNode) if the visit should continue, or null.
Throws:
QueryBuilderVisitorException

visitPost

public Query visitPost(Difference node,
                       Query[] subNode)
                throws QueryBuilderVisitorException
Description copied from interface: QueryBuilderVisitor
Visits an Difference node after recursing into the corresponding subtree.

Specified by:
visitPost in interface QueryBuilderVisitor<Query>
Parameters:
node - the internal node to be visited.
subNode - the array of results returned by subnodes.
Returns:
an appropriate return value (usually, the object built using the elements in subNode) if the visit should continue, or null.
Throws:
QueryBuilderVisitorException

visitPost

public Query visitPost(MultiTerm node,
                       Query[] subNode)
                throws QueryBuilderVisitorException
Description copied from interface: QueryBuilderVisitor
Visits a MultiTerm node after recursing into the corresponding subtree.

Specified by:
visitPost in interface QueryBuilderVisitor<Query>
Parameters:
node - the internal node to be visited.
subNode - the of result returned by the sole subnode.
Returns:
an appropriate return value (usually, the object built using subNode) if the visit should continue, or null.
Throws:
QueryBuilderVisitorException

visitPost

public Query visitPost(Select node,
                       Query subNode)
                throws QueryBuilderVisitorException
Description copied from interface: QueryBuilderVisitor
Visits a Select node after recursing into the corresponding subtree.

Specified by:
visitPost in interface QueryBuilderVisitor<Query>
Parameters:
node - the internal node to be visited.
subNode - the of result returned by the sole subnode.
Returns:
an appropriate return value (usually, the object built using subNode) if the visit should continue, or null.
Throws:
QueryBuilderVisitorException

visitPre

public boolean visitPre(And node)
                 throws QueryBuilderVisitorException
Description copied from interface: QueryBuilderVisitor
Visits an And node before recursing into the corresponding subtree.

Specified by:
visitPre in interface QueryBuilderVisitor<Query>
Parameters:
node - the node to be visited.
Returns:
true if the visit should continue.
Throws:
QueryBuilderVisitorException

visitPre

public boolean visitPre(Consecutive node)
                 throws QueryBuilderVisitorException
Description copied from interface: QueryBuilderVisitor
Visits a Consecutive node before recursing into the corresponding subtree.

Specified by:
visitPre in interface QueryBuilderVisitor<Query>
Parameters:
node - the node to be visited.
Returns:
true if the visit should continue.
Throws:
QueryBuilderVisitorException

visitPre

public boolean visitPre(LowPass node)
                 throws QueryBuilderVisitorException
Description copied from interface: QueryBuilderVisitor
Visits a LowPass node before recursing into the corresponding subtree.

Specified by:
visitPre in interface QueryBuilderVisitor<Query>
Parameters:
node - the node to be visited.
Returns:
true if the visit should continue.
Throws:
QueryBuilderVisitorException

visitPre

public boolean visitPre(Not node)
                 throws QueryBuilderVisitorException
Description copied from interface: QueryBuilderVisitor
Visits a Not node before recursing into the corresponding subtree.

Specified by:
visitPre in interface QueryBuilderVisitor<Query>
Parameters:
node - the node to be visited.
Returns:
true if the visit should continue.
Throws:
QueryBuilderVisitorException

visitPre

public boolean visitPre(Or node)
                 throws QueryBuilderVisitorException
Description copied from interface: QueryBuilderVisitor
Visits an Or node before recursing into the corresponding subtree.

Specified by:
visitPre in interface QueryBuilderVisitor<Query>
Parameters:
node - the node to be visited.
Returns:
true if the visit should continue.
Throws:
QueryBuilderVisitorException

visitPre

public boolean visitPre(OrderedAnd node)
                 throws QueryBuilderVisitorException
Description copied from interface: QueryBuilderVisitor
Visits an OrderedAnd node before recursing into the corresponding subtree.

Specified by:
visitPre in interface QueryBuilderVisitor<Query>
Parameters:
node - the node to be visited.
Returns:
true if the visit should continue.
Throws:
QueryBuilderVisitorException

visitPre

public boolean visitPre(Align node)
                 throws QueryBuilderVisitorException
Description copied from interface: QueryBuilderVisitor
Visits an Align node before recursing into the corresponding subtree.

Specified by:
visitPre in interface QueryBuilderVisitor<Query>
Parameters:
node - the node to be visited.
Returns:
true if the visit should continue.
Throws:
QueryBuilderVisitorException

visitPre

public boolean visitPre(Difference node)
                 throws QueryBuilderVisitorException
Description copied from interface: QueryBuilderVisitor
Visits an Difference node before recursing into the corresponding subtree.

Specified by:
visitPre in interface QueryBuilderVisitor<Query>
Parameters:
node - the node to be visited.
Returns:
true if the visit should continue.
Throws:
QueryBuilderVisitorException

visitPre

public boolean visitPre(MultiTerm node)
                 throws QueryBuilderVisitorException
Description copied from interface: QueryBuilderVisitor
Visits a MultiTerm node before recursing into the corresponding subtree.

Specified by:
visitPre in interface QueryBuilderVisitor<Query>
Parameters:
node - the node to be visited.
Returns:
true if the visit should continue.
Throws:
QueryBuilderVisitorException

visitPre

public boolean visitPre(Select node)
                 throws QueryBuilderVisitorException
Description copied from interface: QueryBuilderVisitor
Visits a Select node before recursing into the corresponding subtree.

Specified by:
visitPre in interface QueryBuilderVisitor<Query>
Parameters:
node - the node to be visited.
Returns:
true if the visit should continue.
Throws:
QueryBuilderVisitorException