public abstract class SingleColumnRestriction
extends java.lang.Object
Modifier and Type | Class and Description |
---|---|
static class |
SingleColumnRestriction.ContainsRestriction |
static class |
SingleColumnRestriction.EQRestriction |
static class |
SingleColumnRestriction.INRestriction |
static class |
SingleColumnRestriction.InRestrictionWithMarker |
static class |
SingleColumnRestriction.InRestrictionWithValues |
static class |
SingleColumnRestriction.IsNotNullRestriction |
static class |
SingleColumnRestriction.SliceRestriction |
Modifier and Type | Field and Description |
---|---|
protected ColumnDefinition |
columnDef
The definition of the column to which apply the restriction.
|
Constructor and Description |
---|
SingleColumnRestriction(ColumnDefinition columnDef) |
Modifier and Type | Method and Description |
---|---|
MultiCBuilder |
appendBoundTo(MultiCBuilder builder,
Bound bound,
QueryOptions options)
Appends the values of the
Restriction for the specified bound to the specified builder. |
protected abstract Restriction |
doMergeWith(Restriction otherRestriction) |
java.util.List<ColumnDefinition> |
getColumnDefs()
Returns the column definitions in position order.
|
ColumnDefinition |
getFirstColumn()
Returns the definition of the first column.
|
ColumnDefinition |
getLastColumn()
Returns the definition of the last column.
|
boolean |
hasBound(Bound b)
Checks if the specified bound is set or not.
|
boolean |
hasSupportingIndex(SecondaryIndexManager indexManager)
Check if the restriction is on indexed columns.
|
boolean |
isContains() |
boolean |
isEQ() |
boolean |
isIN() |
boolean |
isInclusive(Bound b)
Checks if the specified bound is inclusive or not.
|
boolean |
isMultiColumn() |
boolean |
isNotNull() |
boolean |
isOnToken() |
boolean |
isSlice() |
protected abstract boolean |
isSupportedBy(Index index)
Check if this type of restriction is supported by the specified index.
|
Restriction |
mergeWith(Restriction otherRestriction)
Merges this restriction with the specified one.
|
protected static Bound |
reverseBoundIfNeeded(ColumnDefinition columnDefinition,
Bound bound)
Reverses the specified bound if the column type is a reversed one.
|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
addFunctionsTo, addRowFilterTo, appendTo
protected final ColumnDefinition columnDef
public SingleColumnRestriction(ColumnDefinition columnDef)
public java.util.List<ColumnDefinition> getColumnDefs()
Restriction
public ColumnDefinition getFirstColumn()
Restriction
public ColumnDefinition getLastColumn()
Restriction
public boolean hasSupportingIndex(SecondaryIndexManager indexManager)
Restriction
indexManager
- the index managertrue
if the restriction is on indexed columns, false
public final Restriction mergeWith(Restriction otherRestriction) throws InvalidRequestException
Restriction
Restriction are immutable. Therefore merging two restrictions result in a new one. The reason behind this choice is that it allow a great flexibility in the way the merging can done while preventing any side effect.
otherRestriction
- the restriction to merge into this oneInvalidRequestException
- if the restrictions cannot be mergedprotected abstract Restriction doMergeWith(Restriction otherRestriction) throws InvalidRequestException
InvalidRequestException
protected abstract boolean isSupportedBy(Index index)
index
- the secondary indextrue
this type of restriction is supported by the specified index,
false
otherwise.public boolean isOnToken()
isOnToken
in interface Restriction
public boolean isMultiColumn()
isMultiColumn
in interface Restriction
public boolean isSlice()
isSlice
in interface Restriction
public boolean isEQ()
isEQ
in interface Restriction
public boolean isIN()
isIN
in interface Restriction
public boolean isContains()
isContains
in interface Restriction
public boolean isNotNull()
isNotNull
in interface Restriction
public boolean hasBound(Bound b)
Restriction
hasBound
in interface Restriction
b
- the bound typetrue
if the specified bound is set, false
otherwisepublic MultiCBuilder appendBoundTo(MultiCBuilder builder, Bound bound, QueryOptions options)
Restriction
Restriction
for the specified bound to the specified builder.appendBoundTo
in interface Restriction
builder
- the MultiCBuilder
to append to.bound
- the boundoptions
- the query optionsMultiCBuilder
public boolean isInclusive(Bound b)
Restriction
isInclusive
in interface Restriction
b
- the bound typetrue
if the specified bound is inclusive, false
otherwiseprotected static Bound reverseBoundIfNeeded(ColumnDefinition columnDefinition, Bound bound)
columnDefinition
- the column definitionbound
- the boundCopyright © 2016 The Apache Software Foundation