Package org.apache.cassandra.cql3
Class Relation
- java.lang.Object
-
- org.apache.cassandra.cql3.Relation
-
- Direct Known Subclasses:
MultiColumnRelation
,SingleColumnRelation
,TokenRelation
public abstract class Relation extends java.lang.Object
-
-
Field Summary
Fields Modifier and Type Field Description protected Operator
relationType
-
Constructor Summary
Constructors Constructor Description Relation()
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract java.util.List<? extends Term.Raw>
getInValues()
Returns the list of raw IN values for this relation, or null if this is not an IN relation.abstract Term.Raw
getValue()
Returns the raw value for this relation, or null if this is an IN relation.boolean
isContains()
Checks if the operator of this relation is aCONTAINS
.boolean
isContainsKey()
Checks if the operator of this relation is aCONTAINS_KEY
.boolean
isEQ()
Checks if the operator of this relation is aEQ
.boolean
isIN()
Checks if the operator of this relation is aIN
.boolean
isLIKE()
boolean
isMultiColumn()
Checks if this relation apply to multiple columns.boolean
isSlice()
Checks if the operator of this relation is aSlice
(GT, GTE, LTE, LT).protected abstract Restriction
newContainsRestriction(TableMetadata table, VariableSpecifications boundNames, boolean isKey)
Creates a new Contains restriction instance.protected abstract Restriction
newEQRestriction(TableMetadata table, VariableSpecifications boundNames)
Creates a new EQ restriction instance.protected abstract Restriction
newINRestriction(TableMetadata table, VariableSpecifications boundNames)
Creates a new IN restriction instance.protected abstract Restriction
newIsNotRestriction(TableMetadata table, VariableSpecifications boundNames)
protected abstract Restriction
newLikeRestriction(TableMetadata table, VariableSpecifications boundNames, Operator operator)
protected abstract Restriction
newSliceRestriction(TableMetadata table, VariableSpecifications boundNames, Bound bound, boolean inclusive)
Creates a new Slice restriction instance.boolean
onToken()
Checks if this relation is a token relation (e.g.Operator
operator()
abstract Relation
renameIdentifier(ColumnIdentifier from, ColumnIdentifier to)
Renames an identifier in this Relation, if applicable.abstract java.lang.String
toCQLString()
Returns a CQL representation of this relation.Restriction
toRestriction(TableMetadata table, VariableSpecifications boundNames)
Converts thisRelation
into aRestriction
.java.lang.String
toString()
protected abstract Term
toTerm(java.util.List<? extends ColumnSpecification> receivers, Term.Raw raw, java.lang.String keyspace, VariableSpecifications boundNames)
Converts the specifiedRaw
into aTerm
.protected java.util.List<Term>
toTerms(java.util.List<? extends ColumnSpecification> receivers, java.util.List<? extends Term.Raw> raws, java.lang.String keyspace, VariableSpecifications boundNames)
Converts the specifiedRaw
terms into aTerm
s.
-
-
-
Field Detail
-
relationType
protected Operator relationType
-
-
Method Detail
-
operator
public Operator operator()
-
getValue
public abstract Term.Raw getValue()
Returns the raw value for this relation, or null if this is an IN relation.
-
getInValues
public abstract java.util.List<? extends Term.Raw> getInValues()
Returns the list of raw IN values for this relation, or null if this is not an IN relation.
-
isMultiColumn
public boolean isMultiColumn()
Checks if this relation apply to multiple columns.- Returns:
true
if this relation apply to multiple columns,false
otherwise.
-
onToken
public boolean onToken()
Checks if this relation is a token relation (e.g.token(a) = token(1)
).- Returns:
true
if this relation is a token relation,false
otherwise.
-
isContains
public final boolean isContains()
Checks if the operator of this relation is aCONTAINS
.- Returns:
true
if the operator of this relation is aCONTAINS
,false
otherwise.
-
isContainsKey
public final boolean isContainsKey()
Checks if the operator of this relation is aCONTAINS_KEY
.- Returns:
true
if the operator of this relation is aCONTAINS_KEY
,false
otherwise.
-
isIN
public final boolean isIN()
Checks if the operator of this relation is aIN
.- Returns:
true
if the operator of this relation is aIN
,false
otherwise.
-
isEQ
public final boolean isEQ()
Checks if the operator of this relation is aEQ
.- Returns:
true
if the operator of this relation is aEQ
,false
otherwise.
-
isLIKE
public final boolean isLIKE()
-
isSlice
public final boolean isSlice()
Checks if the operator of this relation is aSlice
(GT, GTE, LTE, LT).- Returns:
true
if the operator of this relation is aSlice
,false
otherwise.
-
toRestriction
public final Restriction toRestriction(TableMetadata table, VariableSpecifications boundNames)
Converts thisRelation
into aRestriction
.- Parameters:
table
- the Column Family meta databoundNames
- the variables specification where to collect the bind variables- Returns:
- the
Restriction
corresponding to thisRelation
- Throws:
InvalidRequestException
- if thisRelation
is not valid
-
newEQRestriction
protected abstract Restriction newEQRestriction(TableMetadata table, VariableSpecifications boundNames)
Creates a new EQ restriction instance.- Parameters:
table
- the table meta databoundNames
- the variables specification where to collect the bind variables- Returns:
- a new EQ restriction instance.
- Throws:
InvalidRequestException
- if the relation cannot be converted into an EQ restriction.
-
newINRestriction
protected abstract Restriction newINRestriction(TableMetadata table, VariableSpecifications boundNames)
Creates a new IN restriction instance.- Parameters:
table
- the table meta databoundNames
- the variables specification where to collect the bind variables- Returns:
- a new IN restriction instance
- Throws:
InvalidRequestException
- if the relation cannot be converted into an IN restriction.
-
newSliceRestriction
protected abstract Restriction newSliceRestriction(TableMetadata table, VariableSpecifications boundNames, Bound bound, boolean inclusive)
Creates a new Slice restriction instance.- Parameters:
table
- the table meta databoundNames
- the variables specification where to collect the bind variablesbound
- the slice boundinclusive
-true
if the bound is included.- Returns:
- a new slice restriction instance
- Throws:
InvalidRequestException
- if theRelation
is not valid
-
newContainsRestriction
protected abstract Restriction newContainsRestriction(TableMetadata table, VariableSpecifications boundNames, boolean isKey)
Creates a new Contains restriction instance.- Parameters:
table
- the table meta databoundNames
- the variables specification where to collect the bind variablesisKey
-true
if the restriction to create is a CONTAINS KEY- Returns:
- a new Contains
Restriction
instance - Throws:
InvalidRequestException
- if theRelation
is not valid
-
newIsNotRestriction
protected abstract Restriction newIsNotRestriction(TableMetadata table, VariableSpecifications boundNames)
-
newLikeRestriction
protected abstract Restriction newLikeRestriction(TableMetadata table, VariableSpecifications boundNames, Operator operator)
-
toTerm
protected abstract Term toTerm(java.util.List<? extends ColumnSpecification> receivers, Term.Raw raw, java.lang.String keyspace, VariableSpecifications boundNames)
Converts the specifiedRaw
into aTerm
.- Parameters:
receivers
- the columns to which the values must be associated atraw
- the raw term to convertkeyspace
- the keyspace nameboundNames
- the variables specification where to collect the bind variables- Returns:
- the
Term
corresponding to the specifiedRaw
- Throws:
InvalidRequestException
- if theRaw
term is not valid
-
toTerms
protected final java.util.List<Term> toTerms(java.util.List<? extends ColumnSpecification> receivers, java.util.List<? extends Term.Raw> raws, java.lang.String keyspace, VariableSpecifications boundNames)
Converts the specifiedRaw
terms into aTerm
s.- Parameters:
receivers
- the columns to which the values must be associated atraws
- the raw terms to convertkeyspace
- the keyspace nameboundNames
- the variables specification where to collect the bind variables- Returns:
- the
Term
s corresponding to the specifiedRaw
terms - Throws:
InvalidRequestException
- if theRaw
terms are not valid
-
renameIdentifier
public abstract Relation renameIdentifier(ColumnIdentifier from, ColumnIdentifier to)
Renames an identifier in this Relation, if applicable.- Parameters:
from
- the old identifierto
- the new identifier- Returns:
- this object, if the old identifier is not in the set of entities that this relation covers; otherwise a new Relation with "from" replaced by "to" is returned.
-
toCQLString
public abstract java.lang.String toCQLString()
Returns a CQL representation of this relation.- Returns:
- a CQL representation of this relation
-
toString
public java.lang.String toString()
- Overrides:
toString
in classjava.lang.Object
-
-