Package org.apache.cassandra.db.marshal
Class ReversedType<T>
- java.lang.Object
-
- org.apache.cassandra.db.marshal.AbstractType<T>
-
- org.apache.cassandra.db.marshal.ReversedType<T>
-
- All Implemented Interfaces:
java.util.Comparator<java.nio.ByteBuffer>,AssignmentTestable
public class ReversedType<T> extends AbstractType<T>
-
-
Nested Class Summary
-
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 Modifier and Type Field Description AbstractType<T>baseType-
Fields inherited from class org.apache.cassandra.db.marshal.AbstractType
comparatorSet, comparisonType, isByteOrderComparable, reverseComparator
-
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description CQL3TypeasCQL3Type()<VL,VR>
intcompareCustom(VL left, ValueAccessor<VL> accessorL, VR right, ValueAccessor<VR> accessorR)Implement IFF ComparisonType is CUSTOM Compares the byte 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 semanticsintcompareForCQL(java.nio.ByteBuffer v1, java.nio.ByteBuffer v2)Same as compare except that this ignore ReversedType.AbstractType<?>expandUserTypes()Replace any instances of UserType with equivalent TupleType-s.TermfromJSONObject(java.lang.Object parsed)Given a parsed JSON string, return a byte representation of the object.java.nio.ByteBufferfromString(java.lang.String source)get a byte representation of the given string.static <T> ReversedType<T>getInstance(AbstractType<T> baseType)static <T> ReversedType<T>getInstance(TypeParser parser)TypeSerializer<T>getSerializer()<V> java.lang.StringgetString(V value, ValueAccessor<V> accessor)get a string representation of the bytes used for various identifier (NOT just for log messages)booleanisCompatibleWith(AbstractType<?> otherType)Returns true if this comparator is compatible with the provided previous comparator, that is if previous can safely be replaced by this.booleanisEmptyValueMeaningless()booleanisReversed()<V> booleanreferencesUserType(V name, ValueAccessor<V> accessor)java.lang.StringtoJSONString(java.nio.ByteBuffer buffer, ProtocolVersion protocolVersion)Converts the specified value into its JSON representation.java.lang.StringtoString()This must be overriden by subclasses if necessary so that for any AbstractType, this == TypeParser.parse(toString()).intvalueLengthIfFixed()The length of values for this type if all values are of fixed length, -1 otherwise.ReversedType<?>withUpdatedUserType(UserType udt)Returns an instance of this type with all references to the provided user type recursively replaced with its new definition.-
Methods inherited from class org.apache.cassandra.db.marshal.AbstractType
asCQLTypeStringList, checkComparable, compare, compare, compareCollectionMembers, compose, compose, decompose, decomposeUntyped, freeze, freezeNestedMulticellTypes, getComponents, getString, getString, isCollection, isCounter, isFreezable, isFrozenCollection, isMultiCell, isSerializationCompatibleWith, isTuple, isUDT, isValueCompatibleWith, isValueCompatibleWithInternal, parseDefaultParameters, read, readArray, readBuffer, readBuffer, referencesDuration, referencesUserType, skipValue, subTypes, testAssignment, testAssignment, toCQLString, toJSONString, toString, udfType, unwrap, validate, validate, validateCellValue, validateCollectionMember, writeValue, writeValue, writtenLength, writtenLength
-
-
-
-
Field Detail
-
baseType
public final AbstractType<T> baseType
-
-
Method Detail
-
getInstance
public static <T> ReversedType<T> getInstance(TypeParser parser)
-
getInstance
public static <T> ReversedType<T> getInstance(AbstractType<T> baseType)
-
isEmptyValueMeaningless
public boolean isEmptyValueMeaningless()
Description copied from class:AbstractType- Overrides:
isEmptyValueMeaninglessin classAbstractType<T>
-
compareCustom
public <VL,VR> int compareCustom(VL left, ValueAccessor<VL> accessorL, VR right, ValueAccessor<VR> accessorR)Description copied from class:AbstractTypeImplement IFF ComparisonType is CUSTOM Compares the byte 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:
compareCustomin classAbstractType<T>
-
compareForCQL
public int compareForCQL(java.nio.ByteBuffer v1, java.nio.ByteBuffer v2)Description copied from class:AbstractTypeSame as compare except that this ignore ReversedType. This is to be use when comparing 2 values to decide for a CQL condition (see Operator.isSatisfiedBy) as for CQL, ReversedType is simply an "hint" to the storage engine but it does not change the meaning of queries per-se.- Overrides:
compareForCQLin classAbstractType<T>
-
getString
public <V> java.lang.String getString(V value, ValueAccessor<V> accessor)Description copied from class:AbstractTypeget a string representation of the bytes used for various identifier (NOT just for log messages)- Overrides:
getStringin classAbstractType<T>
-
fromString
public java.nio.ByteBuffer fromString(java.lang.String source)
Description copied from class:AbstractTypeget a byte representation of the given string.- Specified by:
fromStringin classAbstractType<T>
-
fromJSONObject
public Term fromJSONObject(java.lang.Object parsed) throws MarshalException
Description copied from class:AbstractTypeGiven a parsed JSON string, return a byte representation of the object.- Specified by:
fromJSONObjectin classAbstractType<T>- Parameters:
parsed- the result of parsing a json string- Throws:
MarshalException
-
toJSONString
public java.lang.String toJSONString(java.nio.ByteBuffer buffer, ProtocolVersion protocolVersion)Description copied from class:AbstractTypeConverts the specified value into its JSON representation.The buffer position will stay the same.
- Overrides:
toJSONStringin classAbstractType<T>- Parameters:
buffer- the value to convertprotocolVersion- the protocol version to use for the conversion- Returns:
- a JSON string representing the specified value
-
isCompatibleWith
public boolean isCompatibleWith(AbstractType<?> otherType)
Description copied from class:AbstractTypeReturns 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:
isCompatibleWithin classAbstractType<T>
-
asCQL3Type
public CQL3Type asCQL3Type()
- Overrides:
asCQL3Typein classAbstractType<T>
-
getSerializer
public TypeSerializer<T> getSerializer()
- Specified by:
getSerializerin classAbstractType<T>
-
referencesUserType
public <V> boolean referencesUserType(V name, ValueAccessor<V> accessor)- Overrides:
referencesUserTypein classAbstractType<T>
-
expandUserTypes
public AbstractType<?> expandUserTypes()
Description copied from class:AbstractTypeReplace any instances of UserType with equivalent TupleType-s. We need it for dropped_columns, to allow safely dropping unused user types later without retaining any references to them in system_schema.dropped_columns.- Overrides:
expandUserTypesin classAbstractType<T>
-
withUpdatedUserType
public ReversedType<?> withUpdatedUserType(UserType udt)
Description copied from class:AbstractTypeReturns an instance of this type with all references to the provided user type recursively replaced with its new definition.- Overrides:
withUpdatedUserTypein classAbstractType<T>
-
valueLengthIfFixed
public int valueLengthIfFixed()
Description copied from class:AbstractTypeThe length of values for this type if all values are of fixed length, -1 otherwise.- Overrides:
valueLengthIfFixedin classAbstractType<T>
-
isReversed
public boolean isReversed()
- Overrides:
isReversedin classAbstractType<T>
-
toString
public java.lang.String toString()
Description copied from class:AbstractTypeThis 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:
toStringin classAbstractType<T>
-
-