Class MultiColumnRestriction
- java.lang.Object
-
- org.apache.cassandra.cql3.restrictions.MultiColumnRestriction
-
- All Implemented Interfaces:
Restriction
,SingleRestriction
- Direct Known Subclasses:
MultiColumnRestriction.EQRestriction
,MultiColumnRestriction.INRestriction
,MultiColumnRestriction.NotNullRestriction
,MultiColumnRestriction.SliceRestriction
public abstract class MultiColumnRestriction extends java.lang.Object implements SingleRestriction
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
MultiColumnRestriction.EQRestriction
static class
MultiColumnRestriction.INRestriction
static class
MultiColumnRestriction.InRestrictionWithMarker
An IN restriction that uses a single marker for a set of IN values that are tuples.static class
MultiColumnRestriction.InRestrictionWithValues
An IN restriction that has a set of terms for in values.static class
MultiColumnRestriction.NotNullRestriction
static class
MultiColumnRestriction.SliceRestriction
-
Field Summary
Fields Modifier and Type Field Description protected java.util.List<ColumnMetadata>
columnDefs
The columns to which the restriction apply.
-
Constructor Summary
Constructors Constructor Description MultiColumnRestriction(java.util.List<ColumnMetadata> columnDefs)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description protected abstract SingleRestriction
doMergeWith(SingleRestriction otherRestriction)
java.util.List<ColumnMetadata>
getColumnDefs()
Returns the column definitions in position order.protected java.lang.String
getColumnsInCommons(Restriction otherRestriction)
Returns the names of the columns that are specified within thisRestrictions
and the other one as a comma separatedString
.ColumnMetadata
getFirstColumn()
Returns the definition of the first column.ColumnMetadata
getLastColumn()
Returns the definition of the last column.boolean
hasSupportingIndex(IndexRegistry indexRegistry)
Check if the restriction is on indexed columns.boolean
isMultiColumn()
protected abstract boolean
isSupportedBy(Index index, ColumnMetadata def)
SingleRestriction
mergeWith(SingleRestriction otherRestriction)
Merges this restriction with the specified one.boolean
needsFiltering(Index.Group indexGroup)
Returns whether this restriction would need filtering if the specified index group were used.java.lang.String
toString()
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
-
Methods inherited from interface org.apache.cassandra.cql3.restrictions.Restriction
addFunctionsTo, addToRowFilter, isOnToken
-
Methods inherited from interface org.apache.cassandra.cql3.restrictions.SingleRestriction
appendBoundTo, appendTo, hasBound, isContains, isEQ, isEqualityBased, isIN, isInclusive, isLIKE, isNotNull, isSlice
-
-
-
-
Field Detail
-
columnDefs
protected final java.util.List<ColumnMetadata> columnDefs
The columns to which the restriction apply.
-
-
Constructor Detail
-
MultiColumnRestriction
public MultiColumnRestriction(java.util.List<ColumnMetadata> columnDefs)
-
-
Method Detail
-
isMultiColumn
public boolean isMultiColumn()
- Specified by:
isMultiColumn
in interfaceSingleRestriction
-
getFirstColumn
public ColumnMetadata getFirstColumn()
Description copied from interface:Restriction
Returns the definition of the first column.- Specified by:
getFirstColumn
in interfaceRestriction
- Returns:
- the definition of the first column.
-
getLastColumn
public ColumnMetadata getLastColumn()
Description copied from interface:Restriction
Returns the definition of the last column.- Specified by:
getLastColumn
in interfaceRestriction
- Returns:
- the definition of the last column.
-
getColumnDefs
public java.util.List<ColumnMetadata> getColumnDefs()
Description copied from interface:Restriction
Returns the column definitions in position order.- Specified by:
getColumnDefs
in interfaceRestriction
- Returns:
- the column definitions in position order.
-
mergeWith
public final SingleRestriction mergeWith(SingleRestriction otherRestriction)
Description copied from interface:SingleRestriction
Merges this restriction with the specified one.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.
- Specified by:
mergeWith
in interfaceSingleRestriction
- Parameters:
otherRestriction
- the restriction to merge into this one- Returns:
- the restriction resulting of the merge
-
doMergeWith
protected abstract SingleRestriction doMergeWith(SingleRestriction otherRestriction)
-
getColumnsInCommons
protected final java.lang.String getColumnsInCommons(Restriction otherRestriction)
Returns the names of the columns that are specified within thisRestrictions
and the other one as a comma separatedString
.- Parameters:
otherRestriction
- the other restrictions- Returns:
- the names of the columns that are specified within this
Restrictions
and the other one as a comma separatedString
.
-
hasSupportingIndex
public final boolean hasSupportingIndex(IndexRegistry indexRegistry)
Description copied from interface:Restriction
Check if the restriction is on indexed columns.- Specified by:
hasSupportingIndex
in interfaceRestriction
- Parameters:
indexRegistry
- the index registry- Returns:
true
if the restriction is on indexed columns,false
-
needsFiltering
public boolean needsFiltering(Index.Group indexGroup)
Description copied from interface:Restriction
Returns whether this restriction would need filtering if the specified index group were used.- Specified by:
needsFiltering
in interfaceRestriction
- Parameters:
indexGroup
- an index group- Returns:
true
if this would need filtering ifindexGroup
were used,false
otherwise
-
isSupportedBy
protected abstract boolean isSupportedBy(Index index, ColumnMetadata def)
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-