Class Comparisons.ListComparison
- java.lang.Object
-
- com.apple.foundationdb.record.query.expressions.Comparisons.ListComparison
-
- All Implemented Interfaces:
PlanHashable
,Comparisons.Comparison
,QueryHashable
- Enclosing class:
- Comparisons
public static class Comparisons.ListComparison extends Object implements Comparisons.Comparison
A comparison with a list of values.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface com.apple.foundationdb.record.PlanHashable
PlanHashable.PlanHashKind
-
Nested classes/interfaces inherited from interface com.apple.foundationdb.record.QueryHashable
QueryHashable.QueryHashKind
-
-
Constructor Summary
Constructors Constructor Description ListComparison(Comparisons.Type type, List comparand)
-
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.int
queryHash(QueryHashable.QueryHashKind 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 fieldDescriptor, 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
-
ListComparison
public ListComparison(@Nonnull Comparisons.Type type, @Nonnull List comparand)
-
-
Method Detail
-
validate
public void validate(@Nonnull Descriptors.FieldDescriptor fieldDescriptor, 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:
fieldDescriptor
- 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
-
getComparand
@Nonnull 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
-
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
-
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
-
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
-
queryHash
public int queryHash(@Nonnull QueryHashable.QueryHashKind hashKind)
Description copied from interface:QueryHashable
Return a hash similar tohashCode
, but with the additional guarantee that is is stable across JVMs.- Specified by:
queryHash
in interfaceQueryHashable
- 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
-
-