org.apache.cassandra.cql3.selection

## Class Selectable.WithTerm

- java.lang.Object
- - org.apache.cassandra.cql3.selection.Selectable.WithTerm

All Implemented Interfaces:
  AssignmentTestable, Selectable

Enclosing interface:
  Selectable

    public static class Selectable.WithTerm
    extends java.lang.Object
    implements Selectable

### Nested Class Summary

Nested Classes
`static class` `Selectable.WithTerm.Raw`

### Nested classes/interfaces inherited from interface org.apache.cassandra.cql3.selection.Selectable

`Selectable.WithCast, Selectable.WithFieldSelection, Selectable.WithFunction, Selectable.WithTerm, Selectable.WithToJSonFunction, Selectable.WritetimeOrTTL`

### Nested classes/interfaces inherited from interface org.apache.cassandra.cql3.AssignmentTestable

`AssignmentTestable.TestResult`

### Constructor Summary

Constructors
Constructor and Description
`WithTerm(Term.Raw rawTerm)`

### Method Summary

All Methods Instance Methods Concrete Methods
`AbstractType<?>` `getExactTypeIfKnown(java.lang.String keyspace)` The type of the `Selectable` if it can be infered.
`Selector.Factory` `newSelectorFactory(CFMetaData cfm, AbstractType<?> expectedType, java.util.List<ColumnDefinition> defs, VariableSpecifications boundNames)`
`AssignmentTestable.TestResult` `testAssignment(java.lang.String keyspace, ColumnSpecification receiver)`
`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.selection.Selectable

`addAndGetIndex`

### Constructor Detail

#### WithTerm

    public WithTerm(Term.Raw rawTerm)

### Method Detail

#### testAssignment

    public AssignmentTestable.TestResult testAssignment(java.lang.String keyspace,
                                                        ColumnSpecification receiver)

Specified by:
  `testAssignment` in interface `AssignmentTestable`
Specified by:
  `testAssignment` in interface `Selectable`
Returns:
  whether this object can be assigned to the provided receiver. We distinguish between 3 values: - EXACT_MATCH if this object is exactly of the type expected by the receiver - WEAKLY_ASSIGNABLE if this object is not exactly the expected type but is assignable nonetheless - NOT_ASSIGNABLE if it's not assignable Most caller should just call the isAssignable() method on the result, though functions have a use for testing "strong" equality to decide the most precise overload to pick when multiple could match.

#### newSelectorFactory

    public Selector.Factory newSelectorFactory(CFMetaData cfm,
                                               AbstractType<?> expectedType,
                                               java.util.List<ColumnDefinition> defs,
                                               VariableSpecifications boundNames)
                                        throws InvalidRequestException

Specified by:
  `newSelectorFactory` in interface `Selectable`
Throws:
  `InvalidRequestException`

#### getExactTypeIfKnown

    public AbstractType<?> getExactTypeIfKnown(java.lang.String keyspace)

Description copied from interface: `Selectable`
The type of the `Selectable` if it can be infered.

Specified by:
  `getExactTypeIfKnown` in interface `Selectable`
Parameters:
  `keyspace` - the keyspace on which the statement for which this is a `Selectable` is on.
Returns:
  the type of this `Selectable` if inferrable, or `null` otherwise (for instance, the type isn't inferable for a bind marker. Even for literals, the exact type is not inferrable since they are valid for many different types and so this will return `null` too).

#### toString

    public java.lang.String toString()

Overrides:
  `toString` in class `java.lang.Object`