public class DateTimeCodec extends TypeCodec.AbstractTupleCodec<DateTime>
TypeCodec that maps
DateTime to CQL tuple<timestamp,varchar>,
providing a pattern for maintaining timezone information in
Cassandra.
Since Cassandra's timestamp type preserves only
milliseconds since epoch, any timezone information
would normally be lost. By using a
tuple<timestamp,varchar> a timezone ID can be
persisted in the varchar field such that when the
value is deserialized the timezone is
preserved.
IMPORTANT: this codec's format method formats
timestamps using an ISO-8601 format that includes nanoseconds.
This format is incompatible with Cassandra versions < 2.0.9.TypeCodec.AbstractCollectionCodec<E,C extends Collection<E>>, TypeCodec.AbstractMapCodec<K,V>, TypeCodec.AbstractTupleCodec<T>, TypeCodec.AbstractUDTCodec<T>, TypeCodec.PrimitiveBooleanCodec, TypeCodec.PrimitiveByteCodec, TypeCodec.PrimitiveDoubleCodec, TypeCodec.PrimitiveFloatCodec, TypeCodec.PrimitiveIntCodec, TypeCodec.PrimitiveLongCodec, TypeCodec.PrimitiveShortCodecdefinition| Constructor and Description |
|---|
DateTimeCodec(TupleType tupleType) |
| Modifier and Type | Method and Description |
|---|---|
protected DateTime |
deserializeAndSetField(ByteBuffer input,
DateTime target,
int index,
ProtocolVersion protocolVersion)
Deserialize an individual field and set it on an object, as part of deserializing the whole
object from a CQL tuple (see
TypeCodec.AbstractTupleCodec.deserialize(ByteBuffer, ProtocolVersion)). |
protected String |
formatField(DateTime value,
int index)
Format an individual field in an object as a CQL literal, as part of formatting the whole object
(see
TypeCodec.AbstractTupleCodec.format(Object)). |
protected DateTime |
newInstance()
Return a new instance of
T. |
protected DateTime |
parseAndSetField(String input,
DateTime target,
int index)
Parse an individual field and set it on an object, as part of parsing the whole object
(see
TypeCodec.AbstractTupleCodec.parse(String)). |
protected ByteBuffer |
serializeField(DateTime source,
int index,
ProtocolVersion protocolVersion)
Serialize an individual field in an object, as part of serializing the whole object to a CQL
tuple (see
TypeCodec.AbstractTupleCodec.serialize(Object, ProtocolVersion)). |
accepts, deserialize, format, parse, serializeaccepts, accepts, accepts, ascii, bigint, blob, cboolean, cdouble, cfloat, cint, counter, custom, date, decimal, getCqlType, getJavaType, inet, list, map, set, smallInt, time, timestamp, timeUUID, tinyInt, toString, tuple, userType, uuid, varchar, varintpublic DateTimeCodec(TupleType tupleType)
protected DateTime newInstance()
TypeCodec.AbstractTupleCodecT.newInstance in class TypeCodec.AbstractTupleCodec<DateTime>T.protected ByteBuffer serializeField(DateTime source, int index, ProtocolVersion protocolVersion)
TypeCodec.AbstractTupleCodecTypeCodec.AbstractTupleCodec.serialize(Object, ProtocolVersion)).serializeField in class TypeCodec.AbstractTupleCodec<DateTime>source - The object to read the field from.index - The index of the field.protocolVersion - The protocol version to use.null if that field should be ignored.protected DateTime deserializeAndSetField(ByteBuffer input, DateTime target, int index, ProtocolVersion protocolVersion)
TypeCodec.AbstractTupleCodecTypeCodec.AbstractTupleCodec.deserialize(ByteBuffer, ProtocolVersion)).deserializeAndSetField in class TypeCodec.AbstractTupleCodec<DateTime>input - The serialized form of the field.target - The object to set the field on.index - The index of the field.protocolVersion - The protocol version to use.target, but if you're dealing
with immutable types you'll need to return a different instance.protected String formatField(DateTime value, int index)
TypeCodec.AbstractTupleCodecTypeCodec.AbstractTupleCodec.format(Object)).formatField in class TypeCodec.AbstractTupleCodec<DateTime>value - The object to read the field from.index - The index of the field.protected DateTime parseAndSetField(String input, DateTime target, int index)
TypeCodec.AbstractTupleCodecTypeCodec.AbstractTupleCodec.parse(String)).parseAndSetField in class TypeCodec.AbstractTupleCodec<DateTime>input - The String to parse the field from.target - The value to write to.index - The index of the field.target, but if you're dealing
with immutable types you'll need to return a different instance.