Class BaseForQueryPlan
java.lang.Object
se.liu.ida.hefquin.engine.queryplan.base.impl.BaseForQueryPlan
- All Implemented Interfaces:
QueryPlan
- Direct Known Subclasses:
LogicalPlanWithBinaryRootImpl,LogicalPlanWithNaryRootImpl,LogicalPlanWithNullaryRootImpl,LogicalPlanWithUnaryRootImpl,PhysicalPlanWithBinaryRootImpl,PhysicalPlanWithNaryRootImpl,PhysicalPlanWithNullaryRootImpl,PhysicalPlanWithUnaryRootImpl
This is an abstract base class for classes that implement concrete
specializations (sub-interfaces) of the
QueryPlan interface.
This base class implements the QueryPlanningInfo-related methods
of QueryPlan.-
Field Summary
Fields -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotectedprotectedBaseForQueryPlan(Iterable<QueryPlanProperty> qpInfo) Use this constructor to create the plan with aQueryPlanningInfoobject that is initialized with the given properties.protectedBaseForQueryPlan(QueryPlanningInfo qpInfo) Use this constructor only if the plan is meant to be constructed with an already existingQueryPlanningInfoobject. -
Method Summary
Modifier and TypeMethodDescriptionbooleanintgetID()Returns an identifier of this (sub-)plan, which should be distinct from the identifiers of all other sub-plans within the same plan.Returns an object that captures query-planning-related information about this plan.inthashCode()booleanReturnstrueif this plan already has aQueryPlanningInfoobject associated with it.Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface se.liu.ida.hefquin.engine.queryplan.base.QueryPlan
getExpectedVariables, getRootOperator, getSubPlan, isSamePlan, numberOfSubPlans
-
Field Details
-
id
protected final int id
-
-
Constructor Details
-
BaseForQueryPlan
Use this constructor only if the plan is meant to be constructed with an already existingQueryPlanningInfoobject. This object may later be extended with additional properties for this plan. Therefore, do not create multiple plans with the sameQueryPlanningInfoobject; instead, make copies of such an object if needed. One way to create such a copy is to use theBaseForQueryPlan(Iterable)constructor instead, passingQueryPlanningInfo.getProperties()of theQueryPlanningInfoobject to be copied. -
BaseForQueryPlan
Use this constructor to create the plan with aQueryPlanningInfoobject that is initialized with the given properties. This object may later be extended with additional properties for this plan.If the given argument is
nullor an empty iterable, then this constructor does not associate aQueryPlanningInfowith the plan. -
BaseForQueryPlan
protected BaseForQueryPlan()
-
-
Method Details
-
getID
-
hasQueryPlanningInfo
public boolean hasQueryPlanningInfo()Description copied from interface:QueryPlanReturnstrueif this plan already has aQueryPlanningInfoobject associated with it.- Specified by:
hasQueryPlanningInfoin interfaceQueryPlan
-
getQueryPlanningInfo
Description copied from interface:QueryPlanReturns an object that captures query-planning-related information about this plan. This object is meant to be requested and populated by the query planner.If this plan does not yet have a
QueryPlanningInfoobject associated with it, then this function creates a new (empty) one and returns that.- Specified by:
getQueryPlanningInfoin interfaceQueryPlan
-
equals
-
hashCode
-