Class BaseField
- java.lang.Object
-
- com.apple.foundationdb.record.query.expressions.BaseField
-
- All Implemented Interfaces:
PlanHashable
,QueryComponent
- Direct Known Subclasses:
BaseNestedField
,EmptyComparison
,FieldWithComparison
,OneOfThemWithComparison
,OneOfThemWithComponent
@API(INTERNAL) public abstract class BaseField extends Object implements PlanHashable, QueryComponent
An abstract base class for field-likeQueryComponent
s that involve predicates on one particular record field, as specified by thefieldName
member.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.apple.foundationdb.record.PlanHashable
PlanHashable.PlanHashKind
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description protected int
basePlanHash(PlanHashable.PlanHashKind hashKind, ObjectPlanHash baseHash, Object... hashables)
Base implementation ofPlanHashable.planHash(com.apple.foundationdb.record.PlanHashable.PlanHashKind)
.boolean
equals(Object o)
protected Descriptors.FieldDescriptor
findFieldDescriptor(MessageOrBuilder message)
String
getFieldName()
protected Object
getFieldValue(MessageOrBuilder message)
String
getName()
int
hashCode()
protected void
requireMessageField(Descriptors.FieldDescriptor field)
protected void
requirePrimitiveField(Descriptors.FieldDescriptor field)
protected void
requireScalarField(Descriptors.FieldDescriptor field)
protected Descriptors.FieldDescriptor
validateFieldExistence(Descriptors.Descriptor descriptor)
-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface com.apple.foundationdb.record.PlanHashable
planHash, planHash
-
Methods inherited from interface com.apple.foundationdb.record.query.expressions.QueryComponent
eval, evalAsync, evalMessage, evalMessageAsync, isAsync, normalizeForPlanner, normalizeForPlanner, validate
-
-
-
-
Method Detail
-
findFieldDescriptor
@Nonnull protected Descriptors.FieldDescriptor findFieldDescriptor(@Nonnull MessageOrBuilder message)
-
getFieldValue
@Nullable protected Object getFieldValue(@Nullable MessageOrBuilder message)
-
validateFieldExistence
@Nonnull protected Descriptors.FieldDescriptor validateFieldExistence(@Nonnull Descriptors.Descriptor descriptor)
-
requirePrimitiveField
protected void requirePrimitiveField(@Nonnull Descriptors.FieldDescriptor field)
-
requireMessageField
protected void requireMessageField(@Nonnull Descriptors.FieldDescriptor field)
-
requireScalarField
protected void requireScalarField(@Nonnull Descriptors.FieldDescriptor field)
-
basePlanHash
protected int basePlanHash(@Nonnull PlanHashable.PlanHashKind hashKind, ObjectPlanHash baseHash, Object... hashables)
Base implementation ofPlanHashable.planHash(com.apple.foundationdb.record.PlanHashable.PlanHashKind)
. This implementation makes each concrete subclass implement its own version ofPlanHashable.planHash(com.apple.foundationdb.record.PlanHashable.PlanHashKind)
so that they are guided to add their own class modifier (SeeObjectPlanHash
). This implementation is meant to give subclasses common functionality for their own implementation.- Parameters:
hashKind
- the plan hash kind to usebaseHash
- the subclass' base hash (concrete identifier)hashables
- the rest of the subclass' hashable parameters (if any)- Returns:
- the plan hash value calculated
-
-