## Uses of Class
org.modeshape.jcr.query.plan.PlanNode

- Packages that use PlanNode
  Package | Description
  --- | ---
  org.modeshape.jcr.query.engine | This package contains several fully-functional query engine implementations.
  org.modeshape.jcr.query.optimize | This package contains the Optimizer interface, a rule-based optimizer implementation, and library of optimization rules.
  org.modeshape.jcr.query.plan | This package defines the `Planner` interface, the `CanonicalPlanner` implementation, and the `PlanNode` class that is used to represent a canonical query plan.

- - ### Uses of PlanNode in org.modeshape.jcr.query.engine

    Methods in org.modeshape.jcr.query.engine with parameters of type PlanNode
    Modifier and Type | Method and Description
    --- | ---
    `protected NodeSequence` | ScanningQueryEngine.`createNodeSequence(QueryCommand originalQuery, org.modeshape.jcr.query.engine.ScanningQueryEngine.ScanQueryContext context, PlanNode plan, QueryResults.Columns columns, QuerySources sources)` Create a node sequence containing the results of the original query as defined by the supplied plan.
    `protected NodeSequence` | ScanningQueryEngine.`createNodeSequenceForSource(QueryCommand originalQuery, QueryContext context, PlanNode sourceNode, IndexPlan index, QueryResults.Columns columns, QuerySources sources)` Create a node sequence for the given index
    `protected NodeSequence` | IndexQueryEngine.`createNodeSequenceForSource(QueryCommand originalQuery, QueryContext context, PlanNode sourceNode, IndexPlan indexPlan, QueryResults.Columns columns, QuerySources sources)`
    `protected NodeSequence` | ScanningQueryEngine.`createNodeSequenceForSource(QueryCommand originalQuery, QueryContext context, PlanNode sourceNode, QueryResults.Columns columns, QuerySources sources)` Create a node sequence for the given source.
    `protected QueryResults.Columns` | ScanningQueryEngine.`determineProjectedColumns(PlanNode optimizedPlan, org.modeshape.jcr.query.engine.ScanningQueryEngine.ScanQueryContext context)` Compute the columns that are defined in the supplied `plan node`.
    `protected QueryResults` | ScanningQueryEngine.`executeOptimizedQuery(org.modeshape.jcr.query.engine.ScanningQueryEngine.ScanQueryContext context, QueryCommand command, QueryResults.Statistics statistics, PlanNode plan)` Execute the optimized query defined by the supplied `plan node`.

  - ### Uses of PlanNode in org.modeshape.jcr.query.optimize

    Methods in org.modeshape.jcr.query.optimize that return PlanNode
    Modifier and Type | Method and Description
    --- | ---
    `protected PlanNode` | RaiseSelectCriteria.`copySelectNode(QueryContext context, PlanNode selectNode, SelectorName selectorName, String propertyName, SelectorName copySelectorName, String copyPropertyName)`
    `protected PlanNode` | CopyCriteria.`copySelectNode(QueryContext context, PlanNode selectNode, SelectorName selectorName, String propertyName, SelectorName copySelectorName, String copyPropertyName)`
    `PlanNode` | RightOuterToLeftOuterJoins.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | RewritePseudoColumns.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | RewritePathAndNameCriteria.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | RewriteIdentityJoins.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | RewriteAsRangeCriteria.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | ReplaceViews.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | ReorderSortAndRemoveDuplicates.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | RemoveEmptyAccessNodes.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | RaiseVariableName.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | RaiseSelectCriteria.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | PushSelectCriteria.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | PushProjects.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | OrderIndexesByCost.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | OptimizerRule.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)` Optimize the supplied plan using the supplied context, hints, and yet-to-be-run rules.
    `PlanNode` | JoinOrder.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | CopyCriteria.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | ChooseJoinAlgorithm.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | AddOrderingColumnsToSources.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | AddJoinConditionColumnsToSources.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | AddIndexes.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | AddAccessNodes.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `protected PlanNode` | PushSelectCriteria.`findBestChildForCriteria(PlanNode criteriaNode, PlanNode originatingNode)`
    `protected PlanNode` | PushSelectCriteria.`findOriginatingNode(PlanNode criteriaNode, List<PlanNode> originatingNodes)` Find the first node that has all of the same `selectors` as the supplied criteria.
    `PlanNode` | RuleBasedOptimizer.`optimize(QueryContext context, PlanNode plan)`
    `PlanNode` | Optimizer.`optimize(QueryContext context, PlanNode plan)` Optimize the supplied query plan and produce an executable processor plan.

    Methods in org.modeshape.jcr.query.optimize with parameters of type PlanNode
    Modifier and Type | Method and Description
    --- | ---
    `protected void` | AddJoinConditionColumnsToSources.`addEquiJoinColumn(QueryContext context, PlanNode node, Column joinColumn)` Make sure that the supplied column is included in the `projected columns` on the supplied plan node or its children.
    `protected boolean` | AddOrderingColumnsToSources.`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 boolean` | PushSelectCriteria.`atBoundary(PlanNode criteriaNode, PlanNode originatingNode)` Determine whether all of the nodes between the criteria node and its originating node are criteria (SELECT) nodes.
    `protected PlanNode` | RaiseSelectCriteria.`copySelectNode(QueryContext context, PlanNode selectNode, SelectorName selectorName, String propertyName, SelectorName copySelectorName, String copyPropertyName)`
    `protected PlanNode` | CopyCriteria.`copySelectNode(QueryContext context, PlanNode selectNode, SelectorName selectorName, String propertyName, SelectorName copySelectorName, String copyPropertyName)`
    `protected void` | CopyCriteria.`copySelectNodes(QueryContext context, PlanNode fromJoined, PlanNode toJoined)`
    `PlanNode` | RightOuterToLeftOuterJoins.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | RewritePseudoColumns.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | RewritePathAndNameCriteria.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | RewriteIdentityJoins.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | RewriteAsRangeCriteria.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | ReplaceViews.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | ReorderSortAndRemoveDuplicates.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | RemoveEmptyAccessNodes.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | RaiseVariableName.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | RaiseSelectCriteria.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | PushSelectCriteria.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | PushProjects.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | OrderIndexesByCost.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | OptimizerRule.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)` Optimize the supplied plan using the supplied context, hints, and yet-to-be-run rules.
    `PlanNode` | JoinOrder.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | CopyCriteria.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | ChooseJoinAlgorithm.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | AddOrderingColumnsToSources.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | AddJoinConditionColumnsToSources.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | AddIndexes.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `PlanNode` | AddAccessNodes.`execute(QueryContext context, PlanNode plan, LinkedList<OptimizerRule> ruleStack)`
    `protected PlanNode` | PushSelectCriteria.`findBestChildForCriteria(PlanNode criteriaNode, PlanNode originatingNode)`
    `protected PlanNode` | PushSelectCriteria.`findOriginatingNode(PlanNode criteriaNode, List<PlanNode> originatingNodes)` Find the first node that has all of the same `selectors` as the supplied criteria.
    `PlanNode` | RuleBasedOptimizer.`optimize(QueryContext context, PlanNode plan)`
    `PlanNode` | Optimizer.`optimize(QueryContext context, PlanNode plan)` Optimize the supplied query plan and produce an executable processor plan.
    `protected boolean` | PushSelectCriteria.`pushDownJoinCriteria(PlanNode criteriaNode, PlanNode joinNode)` Attempt to push down criteria that applies to the JOIN as additional constraints on the JOIN itself.
    `protected boolean` | PushSelectCriteria.`pushTowardsOriginatingNode(PlanNode criteriaNode, PlanNode originatingNode)` Push the criteria node as close to the originating node as possible.
    `protected void` | RaiseVariableName.`raiseVariableName(PlanNode node)`
    `protected String` | RaiseVariableName.`removeVariableName(PlanNode node)`
    `protected void` | RewriteIdentityJoins.`rewriteJoinNode(QueryContext context, PlanNode joinNode, Map<SelectorName,SelectorName> rewrittenSelectors)`

    Method parameters in org.modeshape.jcr.query.optimize with type arguments of type PlanNode
    Modifier and Type | Method and Description
    --- | ---
    `protected PlanNode` | PushSelectCriteria.`findOriginatingNode(PlanNode criteriaNode, List<PlanNode> originatingNodes)` Find the first node that has all of the same `selectors` as the supplied criteria.

  - ### Uses of PlanNode in org.modeshape.jcr.query.plan

    Methods in org.modeshape.jcr.query.plan that return PlanNode
    Modifier and Type | Method and Description
    --- | ---
    `static PlanNode` | PlanUtil.`addMissingProjectColumns(QueryContext context, PlanNode node, List<Column> allProjectedColumns)`
    `protected PlanNode` | CanonicalPlanner.`attachCriteria(QueryContext context, PlanNode plan, Constraint constraint, List<? extends Column> columns, Map<String,Subquery> subqueriesByVariableName)` Attach all criteria above the join nodes.
    `protected PlanNode` | CanonicalPlanner.`attachDuplicateRemoval(QueryContext context, PlanNode plan)` Attach DUP_REMOVE node at top of tree.
    `protected PlanNode` | CanonicalPlanner.`attachLimits(QueryContext context, PlanNode plan, Limit limit)` Attach a LIMIT node at the top of the plan tree.
    `protected PlanNode` | CanonicalPlanner.`attachProject(QueryContext context, PlanNode plan, List<? extends Column> columns, Map<SelectorName,Schemata.Table> selectors)` Attach a PROJECT node at the top of the plan tree.
    `protected PlanNode` | CanonicalPlanner.`attachSorting(QueryContext context, PlanNode plan, List<? extends Ordering> orderings)` Attach SORT node at top of tree.
    `protected PlanNode` | CanonicalPlanner.`attachSubqueries(QueryContext context, PlanNode plan, Map<String,Subquery> subqueriesByVariableName)` Attach plan nodes for each subquery, resulting with the first subquery at the top of the plan tree.
    `PlanNode` | PlanNode.`clone()` This class returns a new clone of the plan tree rooted at this node.
    `protected PlanNode` | PlanNode.`cloneWithoutNewParent()`
    `protected PlanNode` | CanonicalPlanner.`createCanonicalPlan(QueryContext context, Query query)` Create a canonical query plan for the given query.
    `protected PlanNode` | CanonicalPlanner.`createCanonicalPlan(QueryContext context, SetQuery query)` Create a canonical query plan for the given set query.
    `PlanNode` | Planner.`createPlan(QueryContext context, QueryCommand query)` Create a canonical query plan for the given command.
    `PlanNode` | CanonicalPlanner.`createPlan(QueryContext context, QueryCommand query)`
    `protected PlanNode` | CanonicalPlanner.`createPlanNode(QueryContext context, Source source, Map<SelectorName,Schemata.Table> usedSelectors)` Create a JOIN or SOURCE node that contain the source information.
    `PlanNode` | PlanNode.`findAncestor(PlanNode.Type typeToFind)` Starting at the parent of this node, find the lowest (also closest) ancestor that has the specified type.
    `PlanNode` | PlanNode.`findAncestor(PlanNode.Type firstTypeToFind, PlanNode.Type... additionalTypesToFind)` Starting at the parent of this node, find the lowest (also closest) ancestor that has one of the specified types.
    `PlanNode` | PlanNode.`findAncestor(Set<PlanNode.Type> typesToFind)` Starting at the parent of this node, find the lowest (also closest) ancestor that has one of the specified types.
    `PlanNode` | PlanNode.`findAtOrBelow(PlanNode.Traversal order, PlanNode.Type typeToFind)` Find the first node with the specified type that are at or below this node.
    `PlanNode` | PlanNode.`findAtOrBelow(PlanNode.Traversal order, PlanNode.Type firstTypeToFind, PlanNode.Type... additionalTypesToFind)` Find the first node with one of the specified types that are at or below this node.
    `PlanNode` | PlanNode.`findAtOrBelow(PlanNode.Traversal order, Set<PlanNode.Type> typesToFind)` Find the first node with one of the specified types that are at or below this node.
    `PlanNode` | PlanNode.`findAtOrBelow(PlanNode.Type typeToFind)` Find the first node with the specified type that are at or below this node.
    `PlanNode` | PlanNode.`findAtOrBelow(PlanNode.Type firstTypeToFind, PlanNode.Type... additionalTypesToFind)` Find the first node with one of the specified types that are at or below this node.
    `PlanNode` | PlanNode.`findAtOrBelow(Set<PlanNode.Type> typesToFind)` Find the first node with one of the specified types that are at or below this node.
    `PlanNode` | PlanNode.`getChild(int index)` Get the child at the supplied index.
    `PlanNode` | PlanNode.`getFirstChild()` Get the first child.
    `PlanNode` | PlanNode.`getLastChild()` Get the last child.
    `PlanNode` | PlanNode.`getParent()` Get the parent of this node.
    `PlanNode` | PlanNode.`removeFromParent()` Remove this node from its parent, and return the node that used to be the parent of this node.

    Methods in org.modeshape.jcr.query.plan that return types with arguments of type PlanNode
    Modifier and Type | Method and Description
    --- | ---
    `List<PlanNode>` | PlanNode.`findAllAtOrBelow()` Find all of the nodes that are at or below this node.
    `List<PlanNode>` | PlanNode.`findAllAtOrBelow(PlanNode.Traversal order)` Find all of the nodes that are at or below this node.
    `List<PlanNode>` | PlanNode.`findAllAtOrBelow(PlanNode.Traversal order, PlanNode.Type typeToFind)` Find all of the nodes of the specified type that are at or below this node.
    `List<PlanNode>` | PlanNode.`findAllAtOrBelow(PlanNode.Traversal order, PlanNode.Type firstTypeToFind, PlanNode.Type... additionalTypesToFind)` Find all of the nodes with one of the specified types that are at or below this node.
    `List<PlanNode>` | PlanNode.`findAllAtOrBelow(PlanNode.Traversal order, Set<PlanNode.Type> typesToFind)` Find all of the nodes with one of the specified types that are at or below this node.
    `List<PlanNode>` | PlanNode.`findAllAtOrBelow(PlanNode.Type typeToFind)` Find all of the nodes of the specified type that are at or below this node, using pre-order traversal.
    `List<PlanNode>` | PlanNode.`findAllAtOrBelow(PlanNode.Type firstTypeToFind, PlanNode.Type... additionalTypesToFind)` Find all of the nodes with one of the specified types that are at or below this node.
    `List<PlanNode>` | PlanNode.`findAllAtOrBelow(Set<PlanNode.Type> typesToFind)` Find all of the nodes with one of the specified types that are at or below this node.
    `List<PlanNode>` | PlanNode.`findAllFirstNodesAtOrBelow(PlanNode.Type typeToFind)` Look at nodes below this node, searching for nodes that have the supplied type.
    `List<PlanNode>` | PlanNode.`getChildren()` Get the unmodifiable list of child nodes.
    `LinkedList<PlanNode>` | PlanNode.`getPathTo(PlanNode descendant)` Get the path from this node (inclusive) to the supplied descendant node (inclusive)
    `Iterator<PlanNode>` | PlanNode.`iterator()`
    `List<PlanNode>` | PlanNode.`removeAllChildren()` Remove all children from this node.

    Methods in org.modeshape.jcr.query.plan with parameters of type PlanNode
    Modifier and Type | Method and Description
    --- | ---
    `void` | PlanNode.`addChildren(PlanNode first, PlanNode second)` Add the supplied nodes at the end of the list of children.
    `void` | PlanNode.`addChildren(PlanNode first, PlanNode second, PlanNode third)` Add the supplied nodes at the end of the list of children.
    `void` | PlanNode.`addFirstChild(PlanNode child)` Add the supplied node to the front of the list of children.
    `void` | PlanNode.`addLastChild(PlanNode child)` Add the supplied node to the end of the list of children.
    `static PlanNode` | PlanUtil.`addMissingProjectColumns(QueryContext context, PlanNode node, List<Column> allProjectedColumns)`
    `void` | PlanNode.Operation.`apply(PlanNode node)`
    `protected PlanNode` | CanonicalPlanner.`attachCriteria(QueryContext context, PlanNode plan, Constraint constraint, List<? extends Column> columns, Map<String,Subquery> subqueriesByVariableName)` Attach all criteria above the join nodes.
    `protected PlanNode` | CanonicalPlanner.`attachDuplicateRemoval(QueryContext context, PlanNode plan)` Attach DUP_REMOVE node at top of tree.
    `protected PlanNode` | CanonicalPlanner.`attachLimits(QueryContext context, PlanNode plan, Limit limit)` Attach a LIMIT node at the top of the plan tree.
    `protected PlanNode` | CanonicalPlanner.`attachProject(QueryContext context, PlanNode plan, List<? extends Column> columns, Map<SelectorName,Schemata.Table> selectors)` Attach a PROJECT node at the top of the plan tree.
    `protected PlanNode` | CanonicalPlanner.`attachSorting(QueryContext context, PlanNode plan, List<? extends Ordering> orderings)` Attach SORT node at top of tree.
    `protected PlanNode` | CanonicalPlanner.`attachSubqueries(QueryContext context, PlanNode plan, Map<String,Subquery> subqueriesByVariableName)` Attach plan nodes for each subquery, resulting with the first subquery at the top of the plan tree.
    `static PlanUtil.ColumnMapping` | PlanUtil.`createMappingFor(Schemata.View view, PlanNode viewPlan)`
    `static PlanUtil.ColumnMapping` | PlanUtil.`createMappingForAliased(SelectorName viewAlias, Schemata.View view, PlanNode viewPlan)`
    `void` | PlanNode.`extractChild(PlanNode child)` Remove the child node from this node, and replace that child with its first child (if there is one).
    `static List<Column>` | PlanUtil.`findRequiredColumns(QueryContext context, PlanNode planNode)` Collected the minimum set of columns from the supplied table that are required by or used within the plan at the supplied node or above.
    `static List<String>` | PlanUtil.`findRequiredColumnTypes(QueryContext context, List<Column> columns, PlanNode node)`
    `LinkedList<PlanNode>` | PlanNode.`getPathTo(PlanNode descendant)` Get the path from this node (inclusive) to the supplied descendant node (inclusive)
    `void` | PlanNode.`insertAsParent(PlanNode newParent)` Insert the supplied node into the plan node tree immediately above this node.
    `boolean` | PlanNode.`isAbove(PlanNode possibleDescendant)` Determine if the supplied node is a descendant of this node.
    `boolean` | PlanNode.`isBelow(PlanNode possibleAncestor)` Determine if the supplied node is an ancestor of this node.
    `boolean` | PlanNode.`isSameAs(PlanNode other)` Determine whether the supplied plan is equivalent to this plan.
    `boolean` | PlanNode.`removeChild(PlanNode child)` Remove the node from this node.
    `boolean` | PlanNode.`replaceChild(PlanNode child, PlanNode replacement)` Replace the supplied child with another node.
    `static Constraint` | PlanUtil.`replaceReferences(QueryContext context, Constraint constraint, PlanUtil.ColumnMapping mapping, PlanNode node)`
    `static void` | PlanUtil.`replaceReferencesToRemovedSource(QueryContext context, PlanNode planNode, Map<SelectorName,SelectorName> rewrittenSelectors)`
    `static DynamicOperand` | PlanUtil.`replaceViewReferences(QueryContext context, DynamicOperand operand, PlanUtil.ColumnMapping mapping, PlanNode node)`
    `static JoinCondition` | PlanUtil.`replaceViewReferences(QueryContext context, JoinCondition joinCondition, PlanUtil.ColumnMapping mapping, PlanNode node)`
    `static void` | PlanUtil.`replaceViewReferences(QueryContext context, PlanNode topOfViewInPlan, PlanUtil.ColumnMapping mappings)`
    `protected static void` | PlanUtil.`replaceViewReferences(QueryContext context, PlanNode node, PlanUtil.ColumnMapping mappings, SelectorName viewName, List<PlanNode> potentiallyRemovableSources)`
    `void` | PlanNode.`setParent(PlanNode parent)` Set the parent for this node.
    `protected void` | CanonicalPlanner.`setSubqueryVariableName(PlanNode subqueryPlan, String varName)`

    Method parameters in org.modeshape.jcr.query.plan with type arguments of type PlanNode
    Modifier and Type | Method and Description
    --- | ---
    `void` | PlanNode.`addChildren(Iterable<PlanNode> otherChildren)` Add the supplied nodes at the end of the list of children.
    `void` | PlanNode.`orderChildren(Comparator<PlanNode> comparator)`
    `void` | PlanNode.`orderChildren(PlanNode.Type type, Comparator<PlanNode> comparator)`
    `protected static void` | PlanUtil.`replaceViewReferences(QueryContext context, PlanNode node, PlanUtil.ColumnMapping mappings, SelectorName viewName, List<PlanNode> potentiallyRemovableSources)`

    Constructors in org.modeshape.jcr.query.plan with parameters of type PlanNode
    Constructor and Description
    `PlanNode(PlanNode.Type type, PlanNode parent)` Create a new plan node with the supplied initial type ad that is a child of the supplied parent.
    `PlanNode(PlanNode.Type type, PlanNode parent, Iterable<SelectorName> selectors)` Create a new plan node with the supplied initial type ad that is a child of the supplied parent.
    `PlanNode(PlanNode.Type type, PlanNode parent, SelectorName... selectors)` Create a new plan node with the supplied initial type ad that is a child of the supplied parent.

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