org.modeshape.graph.query.optimize
Class CopyCriteria

java.lang.Object
  extended by org.modeshape.graph.query.optimize.CopyCriteria
All Implemented Interfaces:
OptimizerRule

@Immutable
public class CopyCriteria
extends Object
implements OptimizerRule

An optimizer rule that copies SELECT nodes that apply to one side of a equi-join condition so that they also apply to the other side fo the equi-join condition.


Field Summary
static CopyCriteria INSTANCE
           
 
Constructor Summary
CopyCriteria()
           
 
Method Summary
protected  PlanNode copySelectNode(QueryContext context, PlanNode selectNode, SelectorName selectorName, String propertyName, SelectorName copySelectorName, String copyPropertyName)
           
protected  void copySelectNodes(QueryContext context, PlanNode fromJoined, PlanNode toJoined)
           
 PlanNode execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)
          Optimize the supplied plan using the supplied context, hints, and yet-to-be-run rules.
static Set<Column> getColumnsReferencedBy(Visitable visitable)
          Get the set of Column objects that represent those columns referenced by the visitable object.
 String toString()
          
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

INSTANCE

public static final CopyCriteria INSTANCE
Constructor Detail

CopyCriteria

public CopyCriteria()
Method Detail

execute

public PlanNode execute(QueryContext context,
                        PlanNode plan,
                        LinkedList<OptimizerRule> ruleStack)
Optimize the supplied plan using the supplied context, hints, and yet-to-be-run rules.

Specified by:
execute in interface OptimizerRule
Parameters:
context - the context in which the query is being optimized; never null
plan - the plan to be optimized; never null
ruleStack - the stack of rules that will be run after this rule; never null
Returns:
the optimized plan; never null
See Also:
OptimizerRule.execute(org.modeshape.graph.query.QueryContext, org.modeshape.graph.query.plan.PlanNode, java.util.LinkedList)

copySelectNodes

protected void copySelectNodes(QueryContext context,
                               PlanNode fromJoined,
                               PlanNode toJoined)

copySelectNode

protected PlanNode copySelectNode(QueryContext context,
                                  PlanNode selectNode,
                                  SelectorName selectorName,
                                  String propertyName,
                                  SelectorName copySelectorName,
                                  String copyPropertyName)

toString

public String toString()

Overrides:
toString in class Object
See Also:
Object.toString()

getColumnsReferencedBy

public static Set<Column> getColumnsReferencedBy(Visitable visitable)
Get the set of Column objects that represent those columns referenced by the visitable object.

Parameters:
visitable - the object to be visited
Returns:
the set of Column objects, with column names that always are the string-form of the property name; never null


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