org.apache.cassandra.db.marshal
Class DynamicCompositeType

java.lang.Object
  extended by org.apache.cassandra.db.marshal.AbstractType<java.nio.ByteBuffer>
      extended by org.apache.cassandra.db.marshal.AbstractCompositeType
          extended by org.apache.cassandra.db.marshal.DynamicCompositeType
All Implemented Interfaces:
java.util.Comparator<java.nio.ByteBuffer>

public class DynamicCompositeType
extends AbstractCompositeType


Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.cassandra.db.marshal.AbstractCompositeType
AbstractCompositeType.CompositeComponent, AbstractCompositeType.ParsedComparator
 
Field Summary
 
Fields inherited from class org.apache.cassandra.db.marshal.AbstractType
columnComparator, columnReverseComparator, indexComparator, indexReverseComparator, onDiskAtomComparator, reverseComparator
 
Method Summary
 java.nio.ByteBuffer decompose(java.lang.Object... objects)
           
protected  AbstractType<?> getAndAppendComparator(int i, java.nio.ByteBuffer bb, java.lang.StringBuilder sb)
          Adds type information from @param bb to @param sb.
protected  AbstractType<?> getComparator(int i, java.nio.ByteBuffer bb)
           
protected  AbstractType<?> getComparator(int i, java.nio.ByteBuffer bb1, java.nio.ByteBuffer bb2)
          Adds DynamicCompositeType type information from @param bb1 to @param bb2.
static DynamicCompositeType getInstance(java.util.Map<java.lang.Byte,AbstractType<?>> aliases)
           
static DynamicCompositeType getInstance(TypeParser parser)
           
 boolean isCompatibleWith(AbstractType<?> previous)
          Returns true if this comparator is compatible with the provided previous comparator, that is if previous can safely be replaced by this.
protected  AbstractCompositeType.ParsedComparator parseComparator(int i, java.lang.String part)
          Used by fromString
 java.lang.String toString()
          This must be overriden by subclasses if necessary so that for any AbstractType, this == TypeParser.parse(toString()).
protected  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.AbstractCompositeType
compare, compose, decompose, deconstruct, fromString, getBytes, getShortLength, getString, getWithShortLength, putShortLength, split, validate
 
Methods inherited from class org.apache.cassandra.db.marshal.AbstractType
asCQL3Type, compareCollectionMembers, fromStringCQL2, getColumnsString, getReverseComparator, getString, isCollection, isCommutative, parseDefaultParameters, 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
 

Method Detail

getInstance

public static DynamicCompositeType getInstance(TypeParser parser)
                                        throws ConfigurationException,
                                               SyntaxException
Throws:
ConfigurationException
SyntaxException

getInstance

public static DynamicCompositeType getInstance(java.util.Map<java.lang.Byte,AbstractType<?>> aliases)

getComparator

protected AbstractType<?> getComparator(int i,
                                        java.nio.ByteBuffer bb)
Specified by:
getComparator in class AbstractCompositeType
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 AbstractType<?> getComparator(int i,
                                        java.nio.ByteBuffer bb1,
                                        java.nio.ByteBuffer bb2)
Description copied from class: AbstractCompositeType
Adds DynamicCompositeType type information from @param bb1 to @param bb2.

Specified by:
getComparator in class AbstractCompositeType
Parameters:
i - is ignored.

getAndAppendComparator

protected AbstractType<?> getAndAppendComparator(int i,
                                                 java.nio.ByteBuffer bb,
                                                 java.lang.StringBuilder sb)
Description copied from class: AbstractCompositeType
Adds type information from @param bb to @param sb. @param i is ignored.

Specified by:
getAndAppendComparator in class AbstractCompositeType

parseComparator

protected AbstractCompositeType.ParsedComparator parseComparator(int i,
                                                                 java.lang.String part)
Description copied from class: AbstractCompositeType
Used by fromString

Specified by:
parseComparator in class AbstractCompositeType

validateComparator

protected AbstractType<?> validateComparator(int i,
                                             java.nio.ByteBuffer bb)
                                      throws MarshalException
Description copied from class: AbstractCompositeType
Like getComparator, but validates that @param i does not exceed the defined range

Specified by:
validateComparator in class AbstractCompositeType
Throws:
MarshalException

decompose

public java.nio.ByteBuffer decompose(java.lang.Object... objects)
Specified by:
decompose in class AbstractCompositeType

isCompatibleWith

public boolean isCompatibleWith(AbstractType<?> previous)
Description copied from class: AbstractType
Returns true if this comparator is compatible with the provided previous comparator, that is if previous can safely be replaced by this. A comparator cn should be compatible with a previous one cp if forall columns c1 and c2, if cn.validate(c1) and cn.validate(c2) and cn.compare(c1, c2) == v, then cp.validate(c1) and cp.validate(c2) and cp.compare(c1, c2) == v. Note that a type should be compatible with at least itself and when in doubt, keep the default behavior of not being compatible with any other comparator!

Overrides:
isCompatibleWith in class AbstractType<java.nio.ByteBuffer>

toString

public java.lang.String toString()
Description copied from class: AbstractType
This must be overriden by subclasses if necessary so that for any AbstractType, this == TypeParser.parse(toString()). Note that for backwards compatibility this includes the full classname. For CQL purposes the short name is fine.

Overrides:
toString in class AbstractType<java.nio.ByteBuffer>


Copyright © 2013 The Apache Software Foundation