@API(value=MAINTAINED) public class EmptyComparison extends Object implements ComponentWithNoChildren
Constructor and Description |
---|
EmptyComparison(String fieldName,
boolean isEmpty) |
Modifier and Type | Method and Description |
---|---|
boolean |
equals(Object o) |
<M extends Message> |
evalMessage(FDBRecordStoreBase<M> store,
EvaluationContext context,
FDBRecord<M> record,
Message message)
Return whether or not the given record matches this component.
|
protected Descriptors.FieldDescriptor |
findFieldDescriptor(MessageOrBuilder message) |
String |
getFieldName() |
protected Object |
getFieldValue(MessageOrBuilder message) |
String |
getName() |
Iterator<? extends ExpressionRef<? extends PlannerExpression>> |
getPlannerExpressionChildren()
Return an iterator of references to the children of this planner expression.
|
protected List<Object> |
getValues(MessageOrBuilder message) |
int |
hashCode() |
boolean |
isEmpty() |
int |
planHash()
Return a hash similar to
hashCode , but with the additional guarantee that is is stable across JVMs. |
protected void |
requireMessageField(Descriptors.FieldDescriptor field) |
protected void |
requirePrimitiveField(Descriptors.FieldDescriptor field) |
protected void |
requireScalarField(Descriptors.FieldDescriptor field) |
String |
toString() |
void |
validate(Descriptors.Descriptor descriptor)
Validate that the given descriptor is consistent with this component.
|
protected Descriptors.FieldDescriptor |
validateFieldExistence(Descriptors.Descriptor descriptor) |
protected Descriptors.FieldDescriptor |
validateRepeatedField(Descriptors.Descriptor descriptor) |
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
eval, evalAsync, evalMessageAsync, isAsync
iterablePlanHash, objectPlanHash, objectsPlanHash, planHash, planHash
acceptPropertyVisitor, bindTo
@Nullable public <M extends Message> Boolean evalMessage(@Nonnull FDBRecordStoreBase<M> store, @Nonnull EvaluationContext context, @Nullable FDBRecord<M> record, @Nullable Message message)
QueryComponent
evalMessage
.
Under ordinary circumstances, if record
is null
, then message
will be null
.
Otherwise, message
will be record.getRecord()
or some submessage of that, possibly null
if
the corresponding field is missing.evalMessage
in interface QueryComponent
M
- the type of recordstore
- the record store from which the record camecontext
- context for bound expressionsrecord
- the recordmessage
- the Protobuf message to evaluate againstQueryComponent.eval(com.apple.foundationdb.record.provider.foundationdb.FDBRecordStoreBase<M>, com.apple.foundationdb.record.EvaluationContext, com.apple.foundationdb.record.provider.foundationdb.FDBRecord<M>)
public void validate(@Nonnull Descriptors.Descriptor descriptor)
QueryComponent
validate
in interface QueryComponent
descriptor
- a record type descriptor, or a submessage descriptor@Nonnull public boolean isEmpty()
@Nonnull @API(value=EXPERIMENTAL) public Iterator<? extends ExpressionRef<? extends PlannerExpression>> getPlannerExpressionChildren()
PlannerExpression
Collections.emptyIterator()
is returned. The returned iterator should
be treated as an immutable object and may throw an exception if Iterator.remove()
is called.
The iterator must return its elements in a consistent order.getPlannerExpressionChildren
in interface PlannerExpression
public boolean equals(Object o)
public int hashCode()
public int planHash()
PlanHashable
hashCode
, but with the additional guarantee that is is stable across JVMs.planHash
in interface PlanHashable
@Nullable protected List<Object> getValues(@Nonnull MessageOrBuilder message)
@Nonnull protected Descriptors.FieldDescriptor validateRepeatedField(@Nonnull Descriptors.Descriptor descriptor)
@Nonnull protected Descriptors.FieldDescriptor findFieldDescriptor(@Nonnull MessageOrBuilder message)
@Nullable protected Object getFieldValue(@Nullable MessageOrBuilder message)
@Nonnull protected Descriptors.FieldDescriptor validateFieldExistence(@Nonnull Descriptors.Descriptor descriptor)
protected void requirePrimitiveField(@Nonnull Descriptors.FieldDescriptor field)
protected void requireMessageField(@Nonnull Descriptors.FieldDescriptor field)
protected void requireScalarField(@Nonnull Descriptors.FieldDescriptor field)