Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.modeshape.graph.query.optimize
Class PushProjects

    java.lang.Object
      org.modeshape.graph.query.optimize.PushProjects

All Implemented Interfaces:
  OptimizerRule

    public class PushProjects

extends Object
implements OptimizerRule

This rule attempts to ensure the proper location of `PlanNode.Type.PROJECT` nodes. For example, every `PlanNode.Type.ACCESS` node needs to have a PROJECT node below it and above any other nodes (e.g., `PlanNode.Type.SELECT` or `PlanNode.Type.SOURCE` nodes). This rule ensures that the PROJECT exists, but it also attempts to reduce any unnecessary columns in existing PROJECT nodes.

Field Summary
`static PushProjects` | `INSTANCE`

Constructor Summary
`PushProjects()`

Method Summary
`PlanNode` | `execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)` Optimize the supplied plan using the supplied context, hints, and yet-to-be-run rules.
`protected Set<SelectorName>` | `getSelectorsFor(List<Column> columns)`
`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 PushProjects INSTANCE

Constructor Detail

### PushProjects

    public PushProjects()

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)`

### getSelectorsFor

    protected Set<SelectorName> getSelectorsFor(List<Column> columns)

### toString

    public String toString()

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

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

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