Class Comparisons.NullComparison
- java.lang.Object
-
- com.apple.foundationdb.record.query.expressions.Comparisons.NullComparison
-
- All Implemented Interfaces:
PlanHashable
,Comparisons.Comparison
- Enclosing class:
- Comparisons
public static class Comparisons.NullComparison extends Object implements Comparisons.Comparison
A unary predicate for special nullity checks, such asNULL
andNOT NULL
.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.apple.foundationdb.record.PlanHashable
PlanHashable.PlanHashKind
-
-
Constructor Summary
Constructors Constructor Description NullComparison(Comparisons.Type type)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description boolean
equals(Object o)
Boolean
eval(FDBRecordStoreBase<?> store, EvaluationContext context, Object value)
Evaluate this comparison for the value taken from the target record.Object
getComparand(FDBRecordStoreBase<?> store, EvaluationContext context)
Get the comparison value from the evaluation context.Comparisons.Type
getType()
Get the comparison type.int
hashCode()
int
planHash(PlanHashable.PlanHashKind hashKind)
Return a hash similar tohashCode
, but with the additional guarantee that is is stable across JVMs.String
toString()
String
typelessString()
Get the printed representation of the comparison less the comparison operator itself.void
validate(Descriptors.FieldDescriptor descriptor, boolean fannedOut)
Validate that this comparison is compatible with a given record field.-
Methods inherited from class java.lang.Object
clone, finalize, getClass, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface com.apple.foundationdb.record.query.expressions.Comparisons.Comparison
getComparand, hasMultiColumnComparand
-
Methods inherited from interface com.apple.foundationdb.record.PlanHashable
planHash
-
-
-
-
Constructor Detail
-
NullComparison
public NullComparison(@Nonnull Comparisons.Type type)
-
-
Method Detail
-
eval
@Nullable public Boolean eval(@Nonnull FDBRecordStoreBase<?> store, @Nonnull EvaluationContext context, @Nullable Object value)
Description copied from interface:Comparisons.Comparison
Evaluate this comparison for the value taken from the target record.- Specified by:
eval
in interfaceComparisons.Comparison
- Parameters:
store
- the record store for the querycontext
- the evaluation context for getting the other comparison valuevalue
- the value taken from the record- Returns:
- the tri-valued logic result of the comparison
-
validate
public void validate(@Nonnull Descriptors.FieldDescriptor descriptor, boolean fannedOut)
Description copied from interface:Comparisons.Comparison
Validate that this comparison is compatible with a given record field.- Specified by:
validate
in interfaceComparisons.Comparison
- Parameters:
descriptor
- the Protobuf descriptor for the proposed comparison fieldfannedOut
- whether a repeated field fans out into multiple comparisons or is treated as a single list value
-
getType
@Nonnull public Comparisons.Type getType()
Description copied from interface:Comparisons.Comparison
Get the comparison type.- Specified by:
getType
in interfaceComparisons.Comparison
- Returns:
- the comparison type
-
getComparand
@Nullable public Object getComparand(@Nullable FDBRecordStoreBase<?> store, @Nullable EvaluationContext context)
Description copied from interface:Comparisons.Comparison
Get the comparison value from the evaluation context.- Specified by:
getComparand
in interfaceComparisons.Comparison
- Parameters:
store
- the record store for the querycontext
- the context for query evaluation- Returns:
- the value to be compared
-
typelessString
@Nonnull public String typelessString()
Description copied from interface:Comparisons.Comparison
Get the printed representation of the comparison less the comparison operator itself.- Specified by:
typelessString
in interfaceComparisons.Comparison
- Returns:
- the typeless string
-
planHash
public int planHash(@Nonnull PlanHashable.PlanHashKind hashKind)
Description copied from interface:PlanHashable
Return a hash similar tohashCode
, but with the additional guarantee that is is stable across JVMs.- Specified by:
planHash
in interfacePlanHashable
- Parameters:
hashKind
- the "kind" of hash to calculate. Each kind of hash has a particular logic with regards to included and excluded items.- Returns:
- a stable hash code
-
-