org.apache.cassandra.db.marshal
Class AbstractCompositeType

java.lang.Object
  extended by org.apache.cassandra.db.marshal.AbstractType<java.nio.ByteBuffer>
      extended by org.apache.cassandra.db.marshal.AbstractCompositeType
All Implemented Interfaces:
java.util.Comparator<java.nio.ByteBuffer>
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
static class AbstractCompositeType.CompositeComponent
           
protected static interface AbstractCompositeType.ParsedComparator
           
 
Field Summary
 
Fields inherited from class org.apache.cassandra.db.marshal.AbstractType
columnComparator, columnReverseComparator, indexComparator, indexReverseComparator, onDiskAtomComparator, reverseComparator
 
Constructor Summary
AbstractCompositeType()
           
 
Method Summary
 int compare(java.nio.ByteBuffer o1, java.nio.ByteBuffer o2)
           
 java.nio.ByteBuffer compose(java.nio.ByteBuffer bytes)
           
 java.nio.ByteBuffer decompose(java.nio.ByteBuffer value)
           
abstract  java.nio.ByteBuffer decompose(java.lang.Object... objects)
           
 java.util.List<AbstractCompositeType.CompositeComponent> deconstruct(java.nio.ByteBuffer bytes)
           
 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 static java.nio.ByteBuffer getBytes(java.nio.ByteBuffer bb, int length)
           
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.
protected static int getShortLength(java.nio.ByteBuffer bb)
           
 java.lang.String getString(java.nio.ByteBuffer bytes)
          get a string representation of the bytes suitable for log messages
protected static java.nio.ByteBuffer getWithShortLength(java.nio.ByteBuffer bb)
           
protected abstract  AbstractCompositeType.ParsedComparator parseComparator(int i, java.lang.String part)
          Used by fromString
protected static void putShortLength(java.nio.ByteBuffer bb, int length)
           
 java.nio.ByteBuffer[] split(java.nio.ByteBuffer name)
          Split a composite column names into it's components.
 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
compareCollectionMembers, getColumnsString, getReverseComparator, getString, isCollection, isCommutative, isCompatibleWith, parseDefaultParameters, toString, validateCollectionMember
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 
Methods inherited from interface java.util.Comparator
equals
 

Constructor Detail

AbstractCompositeType

public AbstractCompositeType()
Method Detail

getShortLength

protected static int getShortLength(java.nio.ByteBuffer bb)

putShortLength

protected static void putShortLength(java.nio.ByteBuffer bb,
                                     int length)

getBytes

protected static java.nio.ByteBuffer getBytes(java.nio.ByteBuffer bb,
                                              int length)

getWithShortLength

protected static java.nio.ByteBuffer getWithShortLength(java.nio.ByteBuffer bb)

compare

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

split

public java.nio.ByteBuffer[] split(java.nio.ByteBuffer name)
Split a composite column names into it's components.


deconstruct

public java.util.List<AbstractCompositeType.CompositeComponent> deconstruct(java.nio.ByteBuffer bytes)

getString

public java.lang.String getString(java.nio.ByteBuffer bytes)
Description copied from class: AbstractType
get a string representation of the bytes suitable for log messages

Specified by:
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>

validate

public void validate(java.nio.ByteBuffer bytes)
              throws MarshalException
Specified by:
validate in class AbstractType<java.nio.ByteBuffer>
Throws:
MarshalException

decompose

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

compose

public java.nio.ByteBuffer compose(java.nio.ByteBuffer bytes)
Specified by:
compose in class AbstractType<java.nio.ByteBuffer>

decompose

public java.nio.ByteBuffer decompose(java.nio.ByteBuffer value)
Specified by:
decompose 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



Copyright © 2012 The Apache Software Foundation