org.modeshape.graph.query.model
Class Visitors

java.lang.Object
  extended by org.modeshape.graph.query.model.Visitors

public class Visitors
extends Object

A set of common visitors that can be reused or extended, and methods that provide easy construction and calling of visitors.


Nested Class Summary
static class Visitors.AbstractVisitor
          A common base class for all visitors, which provides no-op implementations for all visit(...) methods.
static class Visitors.NavigationVisitor
          An abstract visitor implementation that performs navigation of the query object.
static class Visitors.ReadableVisitor
           
static class Visitors.WalkAllVisitor
          A visitor implementation that walks the entire query object tree and delegates to another supplied visitor to do the actual work.
 
Constructor Summary
Visitors()
           
 
Method Summary
static Map<SelectorName,SelectorName> getSelectorAliasesByName(Visitable visitable)
          Get a map of the selector aliases keyed by their names.
static Map<SelectorName,SelectorName> getSelectorNamesByAlias(Visitable visitable)
          Get a map of the selector names keyed by their aliases.
static Set<SelectorName> getSelectorsReferencedBy(Visitable visitable)
          Get the names of the selectors referenced by the visitable object.
static String readable(Visitable visitable)
          Using a visitor, obtain the readable string representation of the supplied object
static Collection<Subquery> subqueries(Visitable visitable, boolean includeNestedSubqueries)
          Using a visitor, obtain the Subquery objects that are contained within the supplied object.
static
<GeneralVisitor extends Visitor>
GeneralVisitor
visit(Visitable visitable, GeneralVisitor visitor)
          Visit the supplied object using the supplied Visitors.AbstractVisitor, which must be responsible for navigation as well as any business logic.
static
<StrategyVisitor extends Visitor>
StrategyVisitor
visitAll(Visitable visitable, StrategyVisitor strategyVisitor)
          Visit all objects in the supplied object using a Visitors.NavigationVisitor (specifically a Visitors.WalkAllVisitor), and with each of these visited objects calling the appropriate visit(...) method on the supplied Visitors.AbstractVisitor.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Visitors

public Visitors()
Method Detail

visitAll

public static <StrategyVisitor extends Visitor> StrategyVisitor visitAll(Visitable visitable,
                                                                         StrategyVisitor strategyVisitor)
Visit all objects in the supplied object using a Visitors.NavigationVisitor (specifically a Visitors.WalkAllVisitor), and with each of these visited objects calling the appropriate visit(...) method on the supplied Visitors.AbstractVisitor.

Type Parameters:
StrategyVisitor - the type of strategy visitor
Parameters:
visitable - the top-level object to be visited
strategyVisitor - the visitor that is to be called for each visited objects, but that does not call Visitable.accept(Visitor)
Returns:
the strategy visitor, allowing the caller to easily invoke operations on the visitor after visitation has completed

visit

public static <GeneralVisitor extends Visitor> GeneralVisitor visit(Visitable visitable,
                                                                    GeneralVisitor visitor)
Visit the supplied object using the supplied Visitors.AbstractVisitor, which must be responsible for navigation as well as any business logic.

Type Parameters:
GeneralVisitor - the type of visitor
Parameters:
visitable - the top-level object to be visited
visitor - the visitor that is to be used
Returns:
the visitor, allowing the caller to easily invoke operations on the visitor after visitation has completed

readable

public static String readable(Visitable visitable)
Using a visitor, obtain the readable string representation of the supplied object

Parameters:
visitable - the visitable
Returns:
the string representation

subqueries

public static Collection<Subquery> subqueries(Visitable visitable,
                                              boolean includeNestedSubqueries)
Using a visitor, obtain the Subquery objects that are contained within the supplied object. This method does find Subquery objets nested in other Subquery objects.

Parameters:
visitable - the visitable
includeNestedSubqueries - true if any Subquery objects within other Subquery objects should be included, or false if only the top-level Subquery objects should be included
Returns:
the collection of subqueries; never null but possibly empty if no subqueries were found

getSelectorNamesByAlias

public static Map<SelectorName,SelectorName> getSelectorNamesByAlias(Visitable visitable)
Get a map of the selector names keyed by their aliases.

Parameters:
visitable - the object to be visited
Returns:
the map from the aliases to the aliased selector name; never null but possibly empty

getSelectorAliasesByName

public static Map<SelectorName,SelectorName> getSelectorAliasesByName(Visitable visitable)
Get a map of the selector aliases keyed by their names.

Parameters:
visitable - the object to be visited
Returns:
the map from the selector names to their alias (or name if there is no alias); never null but possibly empty

getSelectorsReferencedBy

public static Set<SelectorName> getSelectorsReferencedBy(Visitable visitable)
Get the names of the selectors referenced by the visitable object.

Parameters:
visitable - the object to be visited
Returns:
the set of selector names referenced in some way by the visitable; never null


Copyright © 2008-2011 JBoss, a division of Red Hat. All Rights Reserved.