org.modeshape.jcr.query.optimize
Class AddOrderingColumnsToSources
java.lang.Object
org.modeshape.jcr.query.optimize.AddOrderingColumnsToSources
- All Implemented Interfaces:
- OptimizerRule
public class AddOrderingColumnsToSources
- extends Object
- implements OptimizerRule
An OptimizerRule
that adds any missing columns required by the ordering specifications to the SORT node's PROJECT, and
to the appropriate access nodes.
Method Summary |
protected boolean |
addIfMissing(QueryContext context,
Column column,
List<Column> columns,
List<String> columnTypes)
Check the supplied list of columns for an existing column that matches the supplied Column , and if none is found
add the supplied Column to the list and add an appropriate type. |
protected void |
addSortColumn(QueryContext context,
PlanNode node,
Column sortColumn)
Make sure that the supplied column is included in the projected columns on the supplied
plan node or its children. |
protected Column |
columnFor(SelectorName selector,
String property,
boolean includeSourceName)
|
PlanNode |
execute(QueryContext context,
PlanNode plan,
LinkedList<OptimizerRule> ruleStack)
Optimize the supplied plan using the supplied context, hints, and yet-to-be-run rules. |
String |
toString()
|
INSTANCE
public static final AddOrderingColumnsToSources INSTANCE
AddOrderingColumnsToSources
public AddOrderingColumnsToSources()
execute
public PlanNode execute(QueryContext context,
PlanNode plan,
LinkedList<OptimizerRule> ruleStack)
- Description copied from interface:
OptimizerRule
- 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 nullplan
- the plan to be optimized; never nullruleStack
- the stack of rules that will be run after this rule; never null
- Returns:
- the optimized plan; never null
addSortColumn
protected void addSortColumn(QueryContext context,
PlanNode node,
Column sortColumn)
- Make sure that the supplied column is included in the
projected columns
on the supplied
plan node or its children.
- Parameters:
context
- the query context; may not be nullnode
- the query plan nodesortColumn
- the column required by the sort
addIfMissing
protected boolean addIfMissing(QueryContext context,
Column column,
List<Column> columns,
List<String> columnTypes)
- Check the supplied list of columns for an existing column that matches the supplied
Column
, and if none is found
add the supplied Column to the list and add an appropriate type.
- Parameters:
context
- the query contextcolumn
- the column that will be added if not already in the list; may not be nullcolumns
- the list of columns; may not be nullcolumnTypes
- the list of column types; may not be null
- Returns:
- true if the column was added (i.e., the lists were modified), or false if the lists were not modified
columnFor
protected Column columnFor(SelectorName selector,
String property,
boolean includeSourceName)
toString
public String toString()
- Overrides:
toString
in class Object
Copyright © 2008-2012 JBoss, a division of Red Hat. All Rights Reserved.