Class SubPlan
- java.lang.Object
-
- org.eclipse.viatra.query.runtime.matchers.planning.SubPlan
-
public class SubPlan extends java.lang.ObjectA plan representing a subset of (or possibly all the) constraints evaluated. A SubPlan instance is responsible for representing a state of the plan; but after it is initialized it is expected be immutable (exception: inferred constraints, seeinferConstraint(PConstraint)).A SubPlan is constructed by applying a
POperationon zero or more parent SubPlans. Important maintained information:- set of variables whose values are known when the runtime evaluation is at this stage,
- set of constraints that are known to hold true at this point.
Recommended to instantiate via a
SubPlanFactoryor subclasses, so that query planners can subclass SubPlan if needed.
-
-
Constructor Summary
Constructors Constructor Description SubPlan(PBody body, POperation operation, java.util.List<? extends SubPlan> parentPlans)A SubPlan is constructed by applying aPOperationon zero or more parent SubPlans.SubPlan(PBody body, POperation operation, SubPlan... parentPlans)A SubPlan is constructed by applying aPOperationon zero or more parent SubPlans.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanequals(java.lang.Object obj)java.util.Set<PVariable>getAllDeducedVariables()Variables which have been assigned a value; includes visible variables (seegetVisibleVariables()) and additionally any variables hidden by a projection (seePProject).java.util.Set<PConstraint>getAllEnforcedConstraints()All constraints that are known to hold at this pointjava.util.Set<TypeJudgement>getAllImpliedTypeJudgements(IQueryMetaContext context)The closure of all type judgments of enforced constraints at this point.PBodygetBody()java.util.Set<PConstraint>getDeltaEnforcedConstraints()The new constraints enforced at this stage of plan, that aren't yet enforced at parents (results are also included ingetAllEnforcedConstraints())java.util.Set<PVariable>getIntroducedVariables()Delta compared to first parent: variables that are visible here but were not visible at the first parent.POperationgetOperation()java.util.List<? extends SubPlan>getParentPlans()java.util.Set<PVariable>getVisibleVariables()Variables which are assigned a value at this point (results are also included ingetAllDeducedVariables())inthashCode()voidinferConstraint(PConstraint constraint)Indicate that a given constraint was found to be automatically satisfied at this point without additional operations.java.lang.StringtoLongString()java.lang.StringtoShortString()java.lang.StringtoString()
-
-
-
Constructor Detail
-
SubPlan
public SubPlan(PBody body, POperation operation, SubPlan... parentPlans)
A SubPlan is constructed by applying aPOperationon zero or more parent SubPlans.
-
SubPlan
public SubPlan(PBody body, POperation operation, java.util.List<? extends SubPlan> parentPlans)
A SubPlan is constructed by applying aPOperationon zero or more parent SubPlans.
-
-
Method Detail
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
toShortString
public java.lang.String toShortString()
-
toLongString
public java.lang.String toLongString()
-
getAllEnforcedConstraints
public java.util.Set<PConstraint> getAllEnforcedConstraints()
All constraints that are known to hold at this point
-
getDeltaEnforcedConstraints
public java.util.Set<PConstraint> getDeltaEnforcedConstraints()
The new constraints enforced at this stage of plan, that aren't yet enforced at parents (results are also included ingetAllEnforcedConstraints())
-
inferConstraint
public void inferConstraint(PConstraint constraint)
Indicate that a given constraint was found to be automatically satisfied at this point without additional operations. (results are also included ingetDeltaEnforcedConstraints())Warning: not propagated automatically to child plans, so best to invoke before constructing further SubPlans.
-
getBody
public PBody getBody()
-
getVisibleVariables
public java.util.Set<PVariable> getVisibleVariables()
Variables which are assigned a value at this point (results are also included ingetAllDeducedVariables())
-
getAllDeducedVariables
public java.util.Set<PVariable> getAllDeducedVariables()
Variables which have been assigned a value; includes visible variables (seegetVisibleVariables()) and additionally any variables hidden by a projection (seePProject).
-
getIntroducedVariables
public java.util.Set<PVariable> getIntroducedVariables()
Delta compared to first parent: variables that are visible here but were not visible at the first parent.
-
getParentPlans
public java.util.List<? extends SubPlan> getParentPlans()
-
getOperation
public POperation getOperation()
-
getAllImpliedTypeJudgements
public java.util.Set<TypeJudgement> getAllImpliedTypeJudgements(IQueryMetaContext context)
The closure of all type judgments of enforced constraints at this point.No subsumption applied.
-
hashCode
public int hashCode()
- Overrides:
hashCodein classjava.lang.Object
-
equals
public boolean equals(java.lang.Object obj)
- Overrides:
equalsin classjava.lang.Object
-
-