## Uses of Class
org.eclipse.incquery.runtime.matchers.planning.SubPlan

- Packages that use SubPlan
  Package | Description
  --- | ---
  org.eclipse.incquery.runtime.localsearch.planner |
  org.eclipse.incquery.runtime.localsearch.planner.cost |
  org.eclipse.incquery.runtime.localsearch.planner.cost.impl |
  org.eclipse.incquery.runtime.localsearch.planner.util |
  org.eclipse.incquery.runtime.matchers.planning |
  org.eclipse.incquery.runtime.matchers.planning.helpers |
  org.eclipse.incquery.runtime.matchers.planning.operations |
  org.eclipse.incquery.runtime.matchers.psystem |
  org.eclipse.incquery.runtime.matchers.psystem.basicdeferred |
  org.eclipse.incquery.runtime.rete.boundary |
  org.eclipse.incquery.runtime.rete.construction.basiclinear |
  org.eclipse.incquery.runtime.rete.construction.plancompiler |
  org.eclipse.incquery.runtime.rete.construction.quasitree |
  org.eclipse.incquery.runtime.rete.traceability |

- - ### Uses of SubPlan in org.eclipse.incquery.runtime.localsearch.planner

    Methods in org.eclipse.incquery.runtime.localsearch.planner that return SubPlan
    Modifier and Type | Method and Description
    --- | ---
    `SubPlan` | LocalSearchPlannerStrategy.`plan(PBody pBody, org.apache.log4j.Logger logger, IQueryMetaContext context)` Deprecated. The implementation of a local search-based algorithm to create a search plan for a flattened (and normalized) PBody
    `SubPlan` | LocalSearchRuntimeBasedStrategy.`plan(PBody pBody, org.apache.log4j.Logger logger, java.util.Set<PVariable> initialBoundVariables, IQueryMetaContext metaContext, IQueryRuntimeContext runtimeContext, java.util.Map<java.lang.String,java.lang.Object> hints)` The implementation of a local search-based algorithm to create a search plan for a flattened (and normalized) PBody

    Methods in org.eclipse.incquery.runtime.localsearch.planner that return types with arguments of type SubPlan
    Modifier and Type | Method and Description
    --- | ---
    `java.util.List<SubPlan>` | LocalSearchPlanner.`getPlansForBodies()`

    Methods in org.eclipse.incquery.runtime.localsearch.planner with parameters of type SubPlan
    Modifier and Type | Method and Description
    --- | ---
    `java.util.List<ISearchOperation>` | POperationCompiler.`compile(SubPlan plan, java.util.Set<java.lang.Integer> boundVariableIndexes)` Compiles a plan of `POperation`s to a list of type `List<ISearchOperation>`

  - ### Uses of SubPlan in org.eclipse.incquery.runtime.localsearch.planner.cost

    Methods in org.eclipse.incquery.runtime.localsearch.planner.cost with parameters of type SubPlan
    Modifier and Type | Method and Description
    --- | ---
    `com.google.common.base.Predicate<PConstraint>` | IConstraintEvaluablePredicateProvider.`getConstraint(SubPlan plan)`
    `double` | ICostEstimator.`getCost(SubPlan currentPlan, PConstraint patternConstraint)` Deprecated. According to the current variable binding estimates the cost of the application of the given constraint

    Constructors in org.eclipse.incquery.runtime.localsearch.planner.cost with parameters of type SubPlan
    Constructor and Description
    `EvaluablePConstraint(SubPlan plan, boolean allowInverseNavigation)`

  - ### Uses of SubPlan in org.eclipse.incquery.runtime.localsearch.planner.cost.impl

    Methods in org.eclipse.incquery.runtime.localsearch.planner.cost.impl with parameters of type SubPlan
    Modifier and Type | Method and Description
    --- | ---
    `double` | VariableBindingBasedCostEstimator.`getCost(SubPlan currentPlan, PConstraint constraint)` Deprecated.

  - ### Uses of SubPlan in org.eclipse.incquery.runtime.localsearch.planner.util

    Methods in org.eclipse.incquery.runtime.localsearch.planner.util with parameters of type SubPlan
    Modifier and Type | Method and Description
    --- | ---
    `static java.util.Map<PConstraint,java.util.Set<java.lang.Integer>>` | CompilerHelper.`cacheVariableBindings(SubPlan plan, java.util.Map<PVariable,java.lang.Integer> variableMappings, java.util.Set<java.lang.Integer> adornment)`
    `static java.util.List<POperation>` | CompilerHelper.`createOperationsList(SubPlan plan)` Extracts the operations from a SubPlan into a list of POperations in the order of execution
    `static java.util.Map<PVariable,java.lang.Integer>` | CompilerHelper.`createVariableMapping(SubPlan plan)`

    Constructors in org.eclipse.incquery.runtime.localsearch.planner.util with parameters of type SubPlan
    Constructor and Description
    `OrderingHeuristics(SubPlan plan, IQueryMetaContext context)` Deprecated.

  - ### Uses of SubPlan in org.eclipse.incquery.runtime.matchers.planning

    Methods in org.eclipse.incquery.runtime.matchers.planning that return SubPlan
    Modifier and Type | Method and Description
    --- | ---
    `SubPlan` | IOperationCompiler.`binaryEdgeTypePlan(Tuple nodes, java.lang.Object supplierKey)`
    `SubPlan` | IOperationCompiler.`buildBetaNode(SubPlan primaryPlan, SubPlan sidePlan, TupleMask primaryMask, TupleMask sideMask, TupleMask complementer, boolean negative)`
    `SubPlan` | IOperationCompiler.`buildCountCheckBetaNode(SubPlan primaryPlan, SubPlan sidePlan, TupleMask primaryMask, TupleMask originalSideMask, int resultPositionInSignature)`
    `SubPlan` | IOperationCompiler.`buildCounterBetaNode(SubPlan primaryPlan, SubPlan sidePlan, TupleMask primaryMask, TupleMask originalSideMask, TupleMask complementer, java.lang.Object aggregateResultCalibrationElement)`
    `SubPlan` | IOperationCompiler.`buildEqualityChecker(SubPlan parentPlan, int[] indices)`
    `SubPlan` | IOperationCompiler.`buildFunctionEvaluator(IExpressionEvaluator evaluator, java.util.Map<java.lang.String,java.lang.Integer> tupleNameMap, SubPlan parentPlan, java.lang.Object computedResultCalibrationElement)`
    `SubPlan` | IOperationCompiler.`buildInjectivityChecker(SubPlan parentPlan, int subject, int[] inequalIndices)`
    `SubPlan` | IOperationCompiler.`buildPredicateChecker(IExpressionEvaluator evaluator, java.util.Map<java.lang.String,java.lang.Integer> tupleNameMap, SubPlan parentPlan)`
    `SubPlan` | IOperationCompiler.`buildStartingPlan(java.lang.Object[] constantValues, java.lang.Object[] constantNames)`
    `SubPlan` | IOperationCompiler.`buildTransitiveClosure(SubPlan parentPlan)`
    `SubPlan` | IOperationCompiler.`buildTrimmer(SubPlan parentPlan, TupleMask trimMask, boolean enforceUniqueness)`
    `SubPlan` | SubPlanFactory.`createSubPlan(POperation operation, SubPlan... parentPlans)`
    `SubPlan` | IOperationCompiler.`directContainmentPlan(Tuple nodes)`
    `SubPlan` | IOperationCompiler.`directGeneralizationPlan(Tuple nodes)`
    `SubPlan` | IOperationCompiler.`directInstantiationPlan(Tuple nodes)`
    `SubPlan` | IOperationCompiler.`patternCallPlan(Tuple nodes, PQuery supplierKey)`
    `SubPlan` | IQueryPlannerStrategy.`plan(PBody pSystem, org.apache.log4j.Logger logger, IQueryMetaContext context)`
    `SubPlan` | IOperationCompiler.`ternaryEdgeTypePlan(Tuple nodes, java.lang.Object supplierKey)`
    `SubPlan` | IOperationCompiler.`transitiveContainmentPlan(Tuple nodes)`
    `SubPlan` | IOperationCompiler.`transitiveGeneralizationPlan(Tuple nodes)`
    `SubPlan` | IOperationCompiler.`transitiveInstantiationPlan(Tuple nodes)`
    `SubPlan` | IOperationCompiler.`unaryTypePlan(Tuple nodes, java.lang.Object supplierKey)`

    Methods in org.eclipse.incquery.runtime.matchers.planning that return types with arguments of type SubPlan
    Modifier and Type | Method and Description
    --- | ---
    `java.util.List<? extends SubPlan>` | SubPlan.`getParentPlans()`

    Methods in org.eclipse.incquery.runtime.matchers.planning with parameters of type SubPlan
    Modifier and Type | Method and Description
    --- | ---
    `SubPlan` | IOperationCompiler.`buildBetaNode(SubPlan primaryPlan, SubPlan sidePlan, TupleMask primaryMask, TupleMask sideMask, TupleMask complementer, boolean negative)`
    `void` | IOperationCompiler.`buildConnection(SubPlan parentPlan, Collector collector)`
    `SubPlan` | IOperationCompiler.`buildCountCheckBetaNode(SubPlan primaryPlan, SubPlan sidePlan, TupleMask primaryMask, TupleMask originalSideMask, int resultPositionInSignature)`
    `SubPlan` | IOperationCompiler.`buildCounterBetaNode(SubPlan primaryPlan, SubPlan sidePlan, TupleMask primaryMask, TupleMask originalSideMask, TupleMask complementer, java.lang.Object aggregateResultCalibrationElement)`
    `SubPlan` | IOperationCompiler.`buildEqualityChecker(SubPlan parentPlan, int[] indices)`
    `SubPlan` | IOperationCompiler.`buildFunctionEvaluator(IExpressionEvaluator evaluator, java.util.Map<java.lang.String,java.lang.Integer> tupleNameMap, SubPlan parentPlan, java.lang.Object computedResultCalibrationElement)`
    `SubPlan` | IOperationCompiler.`buildInjectivityChecker(SubPlan parentPlan, int subject, int[] inequalIndices)`
    `SubPlan` | IOperationCompiler.`buildPredicateChecker(IExpressionEvaluator evaluator, java.util.Map<java.lang.String,java.lang.Integer> tupleNameMap, SubPlan parentPlan)`
    `SubPlan` | IOperationCompiler.`buildTransitiveClosure(SubPlan parentPlan)`
    `SubPlan` | IOperationCompiler.`buildTrimmer(SubPlan parentPlan, TupleMask trimMask, boolean enforceUniqueness)`
    `SubPlan` | SubPlanFactory.`createSubPlan(POperation operation, SubPlan... parentPlans)`

    Constructors in org.eclipse.incquery.runtime.matchers.planning with parameters of type SubPlan
    Constructor and Description
    `SubPlan(PBody body, POperation operation, SubPlan... parentPlans)` A SubPlan is constructed by applying a `POperation` on zero or more parent SubPlans.

    Constructor parameters in org.eclipse.incquery.runtime.matchers.planning with type arguments of type SubPlan
    Constructor and Description
    `SubPlan(PBody body, POperation operation, java.util.List<? extends SubPlan> parentPlans)` A SubPlan is constructed by applying a `POperation` on zero or more parent SubPlans.

  - ### Uses of SubPlan in org.eclipse.incquery.runtime.matchers.planning.helpers

    Methods in org.eclipse.incquery.runtime.matchers.planning.helpers that return SubPlan
    Modifier and Type | Method and Description
    --- | ---
    `static SubPlan` | BuildHelper.`trimUnneccessaryVariables(SubPlanFactory planFactory, SubPlan plan, boolean onlyIfNotDetermined, IQueryMetaContext context)` Reduces the number of tuples by trimming (existentially quantifying) the set of variables that are visible in the subplan, are not exported parameters, have all their constraints already enforced in the subplan, and thus will not be needed anymore.

    Methods in org.eclipse.incquery.runtime.matchers.planning.helpers with parameters of type SubPlan
    Modifier and Type | Method and Description
    --- | ---
    `static boolean` | BuildHelper.`areAllVariablesDetermined(SubPlan plan, java.util.Collection<PVariable> determining, IQueryMetaContext context)`
    `static boolean` | BuildHelper.`areVariablesDetermined(SubPlan plan, java.util.Collection<PVariable> determining, java.util.Collection<PVariable> determined, IQueryMetaContext context)`
    `static void` | BuildHelper.`finalCheck(PBody pSystem, SubPlan plan, IQueryMetaContext context)` Verifies whether all constraints are enforced and exported parameters are present.
    `static PConstraint` | BuildHelper.`getAnyUnenforcedConstraint(PBody pSystem, SubPlan plan)` Finds an arbitrary constraint that is not enforced at the given plan.
    `static SubPlan` | BuildHelper.`trimUnneccessaryVariables(SubPlanFactory planFactory, SubPlan plan, boolean onlyIfNotDetermined, IQueryMetaContext context)` Reduces the number of tuples by trimming (existentially quantifying) the set of variables that are visible in the subplan, are not exported parameters, have all their constraints already enforced in the subplan, and thus will not be needed anymore.

  - ### Uses of SubPlan in org.eclipse.incquery.runtime.matchers.planning.operations

    Methods in org.eclipse.incquery.runtime.matchers.planning.operations with parameters of type SubPlan
    Modifier and Type | Method and Description
    --- | ---
    `void` | PProject.`checkConsistency(SubPlan subPlan)`
    `void` | POperation.`checkConsistency(SubPlan subPlan)` Checks whether this constraint can be properly applied at the given SubPlan.
    `void` | PJoin.`checkConsistency(SubPlan subPlan)`
    `void` | PApply.`checkConsistency(SubPlan subPlan)`

  - ### Uses of SubPlan in org.eclipse.incquery.runtime.matchers.psystem

    Methods in org.eclipse.incquery.runtime.matchers.psystem with parameters of type SubPlan
    Modifier and Type | Method and Description
    --- | ---
    `abstract boolean` | DeferredPConstraint.`isReadyAt(SubPlan plan, IQueryMetaContext context)`
    `boolean` | VariableDeferredPConstraint.`isReadyAt(SubPlan plan, IQueryMetaContext context)` Refine further if needed

  - ### Uses of SubPlan in org.eclipse.incquery.runtime.matchers.psystem.basicdeferred

    Methods in org.eclipse.incquery.runtime.matchers.psystem.basicdeferred with parameters of type SubPlan
    Modifier and Type | Method and Description
    --- | ---
    `PVariable` | BaseTypeSafeConstraint.`checkTypeSafety(SubPlan plan, IQueryMetaContext context)` Checks whether all type restrictions are already enforced on affected variables.
    `boolean` | Equality.`isReadyAt(SubPlan plan, IQueryMetaContext context)`
    `boolean` | BaseTypeSafeConstraint.`isReadyAt(SubPlan plan, IQueryMetaContext context)`

  - ### Uses of SubPlan in org.eclipse.incquery.runtime.rete.boundary

    Methods in org.eclipse.incquery.runtime.rete.boundary that return types with arguments of type SubPlan
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Set<SubPlan>` | ReteBoundary.`getParentPlansOfReceiver(Address<? extends Receiver> receiver)` Deprecated. Use `Node.getTraceInfos()`

    Methods in org.eclipse.incquery.runtime.rete.boundary with parameters of type SubPlan
    Modifier and Type | Method and Description
    --- | ---
    `Address<? extends Supplier>` | ReteBoundary.`getAddress(SubPlan plan)`
    `void` | ReteBoundary.`mapPlanToAddress(SubPlan plan, Address<? extends Supplier> handle)`
    `void` | ReteBoundary.`registerParentPlanForReceiver(Address<? extends Receiver> receiver, SubPlan parentPlan)` Deprecated. Use `Node.assignTraceInfo(org.eclipse.incquery.runtime.rete.traceability.TraceInfo)`

  - ### Uses of SubPlan in org.eclipse.incquery.runtime.rete.construction.basiclinear

    Methods in org.eclipse.incquery.runtime.rete.construction.basiclinear that return SubPlan
    Modifier and Type | Method and Description
    --- | ---
    `SubPlan` | BasicLinearLayout.`plan(PBody pSystem, org.apache.log4j.Logger logger, IQueryMetaContext context)`

    Constructors in org.eclipse.incquery.runtime.rete.construction.basiclinear with parameters of type SubPlan
    Constructor and Description
    `OrderingHeuristics(SubPlan plan, IQueryMetaContext context)`

  - ### Uses of SubPlan in org.eclipse.incquery.runtime.rete.construction.plancompiler

    Methods in org.eclipse.incquery.runtime.rete.construction.plancompiler that return SubPlan
    Modifier and Type | Method and Description
    --- | ---
    `SubPlan` | ReteRecipeCompiler.`getPlan(PBody pBody)`

    Methods in org.eclipse.incquery.runtime.rete.construction.plancompiler that return types with arguments of type SubPlan
    Modifier and Type | Method and Description
    --- | ---
    `java.util.Map<PBody,SubPlan>` | ReteRecipeCompiler.`getCachedQueryPlans()` Returns an unmodifiable view of currently cached query plans.

    Methods in org.eclipse.incquery.runtime.rete.construction.plancompiler with parameters of type SubPlan
    Modifier and Type | Method and Description
    --- | ---
    `static PlanningTrace` | CompilerHelper.`checkAndTrimEqualVariables(SubPlan plan, PlanningTrace coreTrace)` Makes sure that all variables in the tuple are different so that it can be used as `CompiledSubPlan`.
    `CompiledSubPlan` | ReteRecipeCompiler.`getCompiledForm(SubPlan plan)` Returns a `CompiledSubPlan` compiled from a query plan
    `static RecipeTraceInfo` | CompilerHelper.`makeIndexerTrace(SubPlan planToCompile, PlanningTrace parentTrace, TupleMask mask)` Returns a compiled indexer trace according to a mask

    Constructors in org.eclipse.incquery.runtime.rete.construction.plancompiler with parameters of type SubPlan
    Constructor and Description
    `JoinHelper(SubPlan planToCompile, PlanningTrace primaryCompiled, PlanningTrace callTrace)`

  - ### Uses of SubPlan in org.eclipse.incquery.runtime.rete.construction.quasitree

    Methods in org.eclipse.incquery.runtime.rete.construction.quasitree that return SubPlan
    Modifier and Type | Method and Description
    --- | ---
    `SubPlan` | QuasiTreeLayout.`plan(PBody pSystem, org.apache.log4j.Logger logger, IQueryMetaContext context)`
    `SubPlan` | QuasiTreeLayout.Scaffold.`run()`

  - ### Uses of SubPlan in org.eclipse.incquery.runtime.rete.traceability

    Methods in org.eclipse.incquery.runtime.rete.traceability that return SubPlan
    Modifier and Type | Method and Description
    --- | ---
    `SubPlan` | PlanningTrace.`getSubPlan()`

    Methods in org.eclipse.incquery.runtime.rete.traceability with parameters of type SubPlan
    Modifier and Type | Method and Description
    --- | ---
    `CompiledSubPlan` | PlanningTrace.`cloneFor(SubPlan newSubPlan)` Returns a new clone that reinterprets the same compiled form as the compiled form of a (potentially different) subPlan.

    Constructors in org.eclipse.incquery.runtime.rete.traceability with parameters of type SubPlan
    Constructor and Description
    `CompiledSubPlan(SubPlan subPlan, java.util.List<PVariable> variablesTuple, ReteNodeRecipe recipe, java.util.Collection<? extends RecipeTraceInfo> parentRecipeTraces)`
    `CompiledSubPlan(SubPlan subPlan, java.util.List<PVariable> variablesTuple, ReteNodeRecipe recipe, RecipeTraceInfo... parentRecipeTraces)`
    `PlanningTrace(SubPlan subPlan, java.util.List<PVariable> variablesTuple, ReteNodeRecipe recipe, java.util.Collection<? extends RecipeTraceInfo> parentRecipeTraces)`
    `PlanningTrace(SubPlan subPlan, java.util.List<PVariable> variablesTuple, ReteNodeRecipe recipe, RecipeTraceInfo... parentRecipeTraces)`