org.apache.cassandra.db.marshal

## Class AbstractCompositeType

- java.lang.Object
- - org.apache.cassandra.db.marshal.AbstractType<java.nio.ByteBuffer>
  - - org.apache.cassandra.db.marshal.AbstractCompositeType

All Implemented Interfaces:
  java.util.Comparator<java.nio.ByteBuffer>, AssignmentTestable

Direct Known Subclasses:
  CompositeType, DynamicCompositeType

    public abstract class AbstractCompositeType
    extends AbstractType<java.nio.ByteBuffer>

A class avoiding class duplication between CompositeType and DynamicCompositeType. Those two differs only in that for DynamicCompositeType, the comparators are in the encoded column name at the front of each component.

### Nested Class Summary

Nested Classes
`protected static interface` `AbstractCompositeType.ParsedComparator`

### Nested classes/interfaces inherited from class org.apache.cassandra.db.marshal.AbstractType

`AbstractType.ComparisonType`

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

`AssignmentTestable.TestResult`

### Field Summary

### Fields inherited from class org.apache.cassandra.db.marshal.AbstractType

`comparisonType, isByteOrderComparable, reverseComparator`

### Constructor Summary

Constructors
`protected` `AbstractCompositeType()`

### Method Summary

All Methods Static Methods Instance Methods Abstract Methods Concrete Methods
`int` `compareCustom(java.nio.ByteBuffer o1, java.nio.ByteBuffer o2)` Implement IFF ComparisonType is CUSTOM Compares the ByteBuffer representation of two instances of this class, for types where this cannot be done by simple in-order comparison of the unsigned bytes Standard Java compare semantics
`abstract java.nio.ByteBuffer` `decompose(java.lang.Object... objects)`
`static java.lang.String` `escape(java.lang.String input)`
`Term` `fromJSONObject(java.lang.Object parsed)` Given a parsed JSON string, return a byte representation of the object.
`java.nio.ByteBuffer` `fromString(java.lang.String source)` get a byte representation of the given string.
`protected abstract AbstractType<?>` `getAndAppendComparator(int i, java.nio.ByteBuffer bb, java.lang.StringBuilder sb)` Adds type information from @param bb to @param sb.
`protected abstract AbstractType<?>` `getComparator(int i, java.nio.ByteBuffer bb)`
`protected abstract AbstractType<?>` `getComparator(int i, java.nio.ByteBuffer bb1, java.nio.ByteBuffer bb2)` Adds DynamicCompositeType type information from @param bb1 to @param bb2.
`TypeSerializer<java.nio.ByteBuffer>` `getSerializer()`
`java.lang.String` `getString(java.nio.ByteBuffer bytes)` get a string representation of the bytes used for various identifier (NOT just for log messages)
`protected abstract AbstractCompositeType.ParsedComparator` `parseComparator(int i, java.lang.String part)` Used by fromString
`protected abstract boolean` `readIsStatic(java.nio.ByteBuffer bb)`
`boolean` `referencesUserType(java.lang.String name)`
`java.nio.ByteBuffer[]` `split(java.nio.ByteBuffer name)` Split a composite column names into it's components.
`java.lang.String` `toJSONString(java.nio.ByteBuffer buffer, ProtocolVersion protocolVersion)` Converts the specified value into its JSON representation.
`void` `validate(java.nio.ByteBuffer bytes)`
`protected abstract AbstractType<?>` `validateComparator(int i, java.nio.ByteBuffer bb)` Like getComparator, but validates that @param i does not exceed the defined range

### Methods inherited from class org.apache.cassandra.db.marshal.AbstractType

`asCQL3Type, asCQLTypeStringList, checkComparable, compare, compareCollectionMembers, compareForCQL, componentsCount, compose, decompose, equals, freeze, freezeNestedMulticellTypes, getComponents, getString, isCollection, isCompatibleWith, isCounter, isEmptyValueMeaningless, isFreezable, isFrozenCollection, isMultiCell, isReversed, isTuple, isUDT, isValueCompatibleWith, isValueCompatibleWithInternal, parseDefaultParameters, readValue, readValue, referencesDuration, skipValue, testAssignment, toString, toString, validateCellValue, validateCollectionMember, valueLengthIfFixed, writeValue, writtenLength`

### Methods inherited from class java.lang.Object

`clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait`

### Methods inherited from interface java.util.Comparator

`comparing, comparing, comparingDouble, comparingInt, comparingLong, equals, naturalOrder, nullsFirst, nullsLast, reversed, reverseOrder, thenComparing, thenComparing, thenComparing, thenComparingDouble, thenComparingInt, thenComparingLong`

### Constructor Detail

#### AbstractCompositeType

    protected AbstractCompositeType()

### Method Detail

#### compareCustom

    public int compareCustom(java.nio.ByteBuffer o1,
                             java.nio.ByteBuffer o2)

Description copied from class: `AbstractType`
Implement IFF ComparisonType is CUSTOM Compares the ByteBuffer representation of two instances of this class, for types where this cannot be done by simple in-order comparison of the unsigned bytes Standard Java compare semantics

Overrides:
  `compareCustom` in class `AbstractType<java.nio.ByteBuffer>`

#### readIsStatic

    protected abstract boolean readIsStatic(java.nio.ByteBuffer bb)

#### split

    public java.nio.ByteBuffer[] split(java.nio.ByteBuffer name)

Split a composite column names into it's components.

#### escape

    public static java.lang.String escape(java.lang.String input)

#### getString

    public java.lang.String getString(java.nio.ByteBuffer bytes)

Description copied from class: `AbstractType`
get a string representation of the bytes used for various identifier (NOT just for log messages)

Overrides:
  `getString` in class `AbstractType<java.nio.ByteBuffer>`

#### fromString

    public java.nio.ByteBuffer fromString(java.lang.String source)

Description copied from class: `AbstractType`
get a byte representation of the given string.

Specified by:
  `fromString` in class `AbstractType<java.nio.ByteBuffer>`

#### fromJSONObject

    public Term fromJSONObject(java.lang.Object parsed)

Description copied from class: `AbstractType`
Given a parsed JSON string, return a byte representation of the object.

Specified by:
  `fromJSONObject` in class `AbstractType<java.nio.ByteBuffer>`
Parameters:
  `parsed` - the result of parsing a json string

#### toJSONString

    public java.lang.String toJSONString(java.nio.ByteBuffer buffer,
                                         ProtocolVersion protocolVersion)

Description copied from class: `AbstractType`
Converts the specified value into its JSON representation.

The buffer position will stay the same.

Overrides:
  `toJSONString` in class `AbstractType<java.nio.ByteBuffer>`
Parameters:
  `buffer` - the value to convert
  `protocolVersion` - the protocol version to use for the conversion
Returns:
  a JSON string representing the specified value

#### validate

    public void validate(java.nio.ByteBuffer bytes)
                  throws MarshalException

Overrides:
  `validate` in class `AbstractType<java.nio.ByteBuffer>`
Throws:
  `MarshalException`

#### decompose

    public abstract java.nio.ByteBuffer decompose(java.lang.Object... objects)

#### getSerializer

    public TypeSerializer<java.nio.ByteBuffer> getSerializer()

Specified by:
  `getSerializer` in class `AbstractType<java.nio.ByteBuffer>`

#### referencesUserType

    public boolean referencesUserType(java.lang.String name)

Overrides:
  `referencesUserType` in class `AbstractType<java.nio.ByteBuffer>`

#### getComparator

    protected abstract AbstractType<?> getComparator(int i,
                                                     java.nio.ByteBuffer bb)

Parameters:
  `i` - DynamicCompositeType will read the type information from @param bb
  `bb` - name of type definition
Returns:
  the comparator for the given component. static CompositeType will consult

#### getComparator

    protected abstract AbstractType<?> getComparator(int i,
                                                     java.nio.ByteBuffer bb1,
                                                     java.nio.ByteBuffer bb2)

Adds DynamicCompositeType type information from @param bb1 to @param bb2.

Parameters:
  `i` - is ignored.

#### getAndAppendComparator

    protected abstract AbstractType<?> getAndAppendComparator(int i,
                                                              java.nio.ByteBuffer bb,
                                                              java.lang.StringBuilder sb)

Adds type information from @param bb to @param sb. @param i is ignored.

#### validateComparator

    protected abstract AbstractType<?> validateComparator(int i,
                                                          java.nio.ByteBuffer bb)
                                                   throws MarshalException

Like getComparator, but validates that @param i does not exceed the defined range

Throws:
  `MarshalException`

#### parseComparator

    protected abstract AbstractCompositeType.ParsedComparator parseComparator(int i,
                                                                              java.lang.String part)

Used by fromString