org.modeshape.jcr.query.optimize

## Interface OptimizerRule

- All Known Implementing Classes:
    AddAccessNodes, AddIndexes, AddJoinConditionColumnsToSources, AddOrderingColumnsToSources, ChooseJoinAlgorithm, CopyCriteria, JoinOrder, OrderIndexesByCost, PushProjects, PushSelectCriteria, RaiseSelectCriteria, RaiseVariableName, RemoveEmptyAccessNodes, ReorderSortAndRemoveDuplicates, ReplaceViews, RewriteAsRangeCriteria, RewriteIdentityJoins, RewritePathAndNameCriteria, RewritePseudoColumns, RightOuterToLeftOuterJoins

      @Immutable
      public interface OptimizerRule

  Interface that defines an `Optimizer` rule.

- - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `PlanNode` | `execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)` Optimize the supplied plan using the supplied context, hints, and yet-to-be-run rules.

- - ### Method Detail

    - #### execute

          PlanNode execute(QueryContext context,
                         PlanNode plan,
                         LinkedList<OptimizerRule> ruleStack)

      Optimize the supplied plan using the supplied context, hints, and yet-to-be-run rules.
      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

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