Package org.apache.cassandra.db.marshal
Class ByteBufferAccessor
- java.lang.Object
-
- org.apache.cassandra.db.marshal.ByteBufferAccessor
-
- All Implemented Interfaces:
ValueAccessor<java.nio.ByteBuffer>
public class ByteBufferAccessor extends java.lang.Object implements ValueAccessor<java.nio.ByteBuffer>
Accessor for ByteBuffer values. ByteBufferAccessor treatesBuffer.position()as index 0, andBuffer.remaining()as the length.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface org.apache.cassandra.db.marshal.ValueAccessor
ValueAccessor.ObjectFactory<V>
-
-
Field Summary
Fields Modifier and Type Field Description static ValueAccessor<java.nio.ByteBuffer>instance
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.nio.ByteBufferallocate(int size)Allocate and return a {@param} instance of {@param size} bytes on the heap. <V2> intcompare(java.nio.ByteBuffer left, V2 right, ValueAccessor<V2> accessorR)lexicographically compare {@param left} to {@param right}intcompareByteArrayTo(byte[] left, java.nio.ByteBuffer right)compare a byte array on the left with a {@param} on the right} intcompareByteBufferTo(java.nio.ByteBuffer left, java.nio.ByteBuffer right)compare a byte buffer on the left with a {@param} on the right} <V2> java.nio.ByteBufferconvert(V2 src, ValueAccessor<V2> accessor)Convert the data in {@param src} to {@param} {@param src} and the returned value may share a common byte array instance, so caller should assume that modifying the returned value will also modify the contents of {@param src} intcopyByteArrayTo(byte[] src, int srcOffset, java.nio.ByteBuffer dst, int dstOffset, int size)copies a byte array into this accessors value.intcopyByteBufferTo(java.nio.ByteBuffer src, int srcOffset, java.nio.ByteBuffer dst, int dstOffset, int size)copies a byte buffer into this accessors value.<V2> intcopyTo(java.nio.ByteBuffer src, int srcOffset, V2 dst, ValueAccessor<V2> dstAccessor, int dstOffset, int size)copy the {@param size} bytes from the {@param src} value, starting at the offset {@param srcOffset} into the {@param dst} value, starting at the offset {@param dstOffset}, using the accessor {@param dstAccessor}java.nio.ByteBuffer[]createArray(int length)allocate an instance of the accessors backing typevoiddigest(java.nio.ByteBuffer value, int offset, int size, Digest digest)updates {@param digest} with {@param size} bytes from the contents of {@param value} starting at offset {@param offset}java.nio.ByteBufferempty()return a value with a length of 0ValueAccessor.ObjectFactory<java.nio.ByteBuffer>factory()returns theValueAccessor.ObjectFactoryfor the backing type {@param} bytegetByte(java.nio.ByteBuffer value, int offset)returns a byte from offset {@param offset}intgetInt(java.nio.ByteBuffer value, int offset)returns an int from offset {@param offset}longgetLong(java.nio.ByteBuffer value, int offset)returns a long from offset {@param offset}shortgetShort(java.nio.ByteBuffer value, int offset)returns a short from offset {@param offset}intgetUnsignedShort(java.nio.ByteBuffer value, int offset)returns an unsigned short from offset {@param offset}intputByte(java.nio.ByteBuffer dst, int offset, byte value)writes the byte value {@param value} to {@param dst} at offset {@param offset}intputInt(java.nio.ByteBuffer dst, int offset, int value)writes the int value {@param value} to {@param dst} at offset {@param offset}intputLong(java.nio.ByteBuffer dst, int offset, long value)writes the long value {@param value} to {@param dst} at offset {@param offset}intputShort(java.nio.ByteBuffer dst, int offset, short value)writes the short value {@param value} to {@param dst} at offset {@param offset}java.nio.ByteBufferread(DataInputPlus in, int length)Reads a value of {@param length} bytes from {@param in}intsize(java.nio.ByteBuffer value)java.nio.ByteBufferslice(java.nio.ByteBuffer input, int offset, int length)Returns a value with the contents of {@param input} from {@param offset} to {@param length}.byte[]toArray(java.nio.ByteBuffer value)returns a byte[] with the contents of {@param value} Depending on the accessor implementation, this method may: * allocate a new byte[] object and copy data into it * return the value, if the backing type is byte[]byte[]toArray(java.nio.ByteBuffer value, int offset, int length)returns a byte[] with {@param length} bytes copied from the contents of {@param value} starting at offset {@param offset}.BallottoBallot(java.nio.ByteBuffer value)returns a TimeUUID from offset 0java.nio.ByteBuffertoBuffer(java.nio.ByteBuffer value)returns a ByteBuffer with the contents of {@param value} Depending on the accessor implementation, this method may: * allocate a new ByteBuffer and copy data into it * return the value, if the backing type is a bytebufferbytetoByte(java.nio.ByteBuffer value)returns a byte from offset 0doubletoDouble(java.nio.ByteBuffer value)returns a double from offset 0floattoFloat(java.nio.ByteBuffer value)returns a float from offset 0java.lang.StringtoHex(java.nio.ByteBuffer value)inttoInt(java.nio.ByteBuffer value)returns an int from offset 0longtoLong(java.nio.ByteBuffer value)returns a long from offset 0shorttoShort(java.nio.ByteBuffer value)returns a short from offset 0java.lang.StringtoString(java.nio.ByteBuffer value, java.nio.charset.Charset charset)TimeUUIDtoTimeUUID(java.nio.ByteBuffer value)returns a TimeUUID from offset 0java.util.UUIDtoUUID(java.nio.ByteBuffer value)returns a UUID from offset 0java.nio.ByteBuffervalueOf(boolean v)return a value with the bytes from {@param v}java.nio.ByteBuffervalueOf(byte v)return a value with the bytes from {@param v}java.nio.ByteBuffervalueOf(byte[] bytes)return a value containing the {@param bytes} Caller should assume that modifying the returned value will also modify the contents of {@param bytes}java.nio.ByteBuffervalueOf(double v)return a value with the bytes from {@param v}java.nio.ByteBuffervalueOf(float v)return a value with the bytes from {@param v}java.nio.ByteBuffervalueOf(int v)return a value with the bytes from {@param v}java.nio.ByteBuffervalueOf(long v)return a value with the bytes from {@param v}java.nio.ByteBuffervalueOf(short v)return a value with the bytes from {@param v}java.nio.ByteBuffervalueOf(java.lang.String v, java.nio.charset.Charset charset)return a value containing the bytes for the given string and charsetjava.nio.ByteBuffervalueOf(java.nio.ByteBuffer bytes)return a value containing the {@param bytes} {@param src} and the returned value may share a common byte array instance, so caller should assume that modifying the returned value will also modify the contents of {@param src}java.nio.ByteBuffervalueOf(java.util.UUID v)return a value with the bytes from {@param v}voidwrite(java.nio.ByteBuffer value, java.nio.ByteBuffer out)Write the contents of the given value into the ByteBuffervoidwrite(java.nio.ByteBuffer value, DataOutputPlus out)Write the contents of the given value into the a DataOutputPlus-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.apache.cassandra.db.marshal.ValueAccessor
digest, getBoolean, hashCode, isEmpty, isEmptyFromOffset, sizeFromOffset, sizeWithShortLength, sizeWithVIntLength, sliceWithShortLength, toString, writeWithVIntLength
-
-
-
-
Field Detail
-
instance
public static final ValueAccessor<java.nio.ByteBuffer> instance
-
-
Method Detail
-
size
public int size(java.nio.ByteBuffer value)
- Specified by:
sizein interfaceValueAccessor<java.nio.ByteBuffer>- Returns:
- the size of the given value
-
createArray
public java.nio.ByteBuffer[] createArray(int length)
Description copied from interface:ValueAccessorallocate an instance of the accessors backing type- Specified by:
createArrayin interfaceValueAccessor<java.nio.ByteBuffer>- Parameters:
length- size of backing typ to allocate
-
write
public void write(java.nio.ByteBuffer value, DataOutputPlus out) throws java.io.IOExceptionDescription copied from interface:ValueAccessorWrite the contents of the given value into the a DataOutputPlus- Specified by:
writein interfaceValueAccessor<java.nio.ByteBuffer>- Throws:
java.io.IOException
-
write
public void write(java.nio.ByteBuffer value, java.nio.ByteBuffer out)Description copied from interface:ValueAccessorWrite the contents of the given value into the ByteBuffer- Specified by:
writein interfaceValueAccessor<java.nio.ByteBuffer>
-
copyTo
public <V2> int copyTo(java.nio.ByteBuffer src, int srcOffset, V2 dst, ValueAccessor<V2> dstAccessor, int dstOffset, int size)Description copied from interface:ValueAccessorcopy the {@param size} bytes from the {@param src} value, starting at the offset {@param srcOffset} into the {@param dst} value, starting at the offset {@param dstOffset}, using the accessor {@param dstAccessor}- Specified by:
copyToin interfaceValueAccessor<java.nio.ByteBuffer>- Type Parameters:
V2- the destination value type- Returns:
- the number of bytes copied ({@param size})
-
copyByteArrayTo
public int copyByteArrayTo(byte[] src, int srcOffset, java.nio.ByteBuffer dst, int dstOffset, int size)Description copied from interface:ValueAccessorcopies a byte array into this accessors value.- Specified by:
copyByteArrayToin interfaceValueAccessor<java.nio.ByteBuffer>
-
copyByteBufferTo
public int copyByteBufferTo(java.nio.ByteBuffer src, int srcOffset, java.nio.ByteBuffer dst, int dstOffset, int size)Description copied from interface:ValueAccessorcopies a byte buffer into this accessors value.- Specified by:
copyByteBufferToin interfaceValueAccessor<java.nio.ByteBuffer>
-
digest
public void digest(java.nio.ByteBuffer value, int offset, int size, Digest digest)Description copied from interface:ValueAccessorupdates {@param digest} with {@param size} bytes from the contents of {@param value} starting at offset {@param offset}- Specified by:
digestin interfaceValueAccessor<java.nio.ByteBuffer>
-
read
public java.nio.ByteBuffer read(DataInputPlus in, int length) throws java.io.IOException
Description copied from interface:ValueAccessorReads a value of {@param length} bytes from {@param in}- Specified by:
readin interfaceValueAccessor<java.nio.ByteBuffer>- Throws:
java.io.IOException
-
slice
public java.nio.ByteBuffer slice(java.nio.ByteBuffer input, int offset, int length)Description copied from interface:ValueAccessorReturns a value with the contents of {@param input} from {@param offset} to {@param length}. Depending on the accessor implementation, this method may: * allocate a new {@param} object of {@param length}, and copy data into it * return a view of {@param input} where changes to one will be reflected in the other - Specified by:
slicein interfaceValueAccessor<java.nio.ByteBuffer>
-
compare
public <V2> int compare(java.nio.ByteBuffer left, V2 right, ValueAccessor<V2> accessorR)Description copied from interface:ValueAccessorlexicographically compare {@param left} to {@param right}- Specified by:
comparein interfaceValueAccessor<java.nio.ByteBuffer>- Type Parameters:
V2- backing type of
-
compareByteArrayTo
public int compareByteArrayTo(byte[] left, java.nio.ByteBuffer right)Description copied from interface:ValueAccessorcompare a byte array on the left with a {@param} on the right} - Specified by:
compareByteArrayToin interfaceValueAccessor<java.nio.ByteBuffer>
-
compareByteBufferTo
public int compareByteBufferTo(java.nio.ByteBuffer left, java.nio.ByteBuffer right)Description copied from interface:ValueAccessorcompare a byte buffer on the left with a {@param} on the right} - Specified by:
compareByteBufferToin interfaceValueAccessor<java.nio.ByteBuffer>
-
toBuffer
public java.nio.ByteBuffer toBuffer(java.nio.ByteBuffer value)
Description copied from interface:ValueAccessorreturns a ByteBuffer with the contents of {@param value} Depending on the accessor implementation, this method may: * allocate a new ByteBuffer and copy data into it * return the value, if the backing type is a bytebuffer- Specified by:
toBufferin interfaceValueAccessor<java.nio.ByteBuffer>
-
toArray
public byte[] toArray(java.nio.ByteBuffer value)
Description copied from interface:ValueAccessorreturns a byte[] with the contents of {@param value} Depending on the accessor implementation, this method may: * allocate a new byte[] object and copy data into it * return the value, if the backing type is byte[]- Specified by:
toArrayin interfaceValueAccessor<java.nio.ByteBuffer>
-
toArray
public byte[] toArray(java.nio.ByteBuffer value, int offset, int length)Description copied from interface:ValueAccessorreturns a byte[] with {@param length} bytes copied from the contents of {@param value} starting at offset {@param offset}. Depending on the accessor implementation, this method may: * allocate a new byte[] object and copy data into it * return the value, if the backing type is byte[], offset is 0 and {@param length} == size(value)- Specified by:
toArrayin interfaceValueAccessor<java.nio.ByteBuffer>
-
toString
public java.lang.String toString(java.nio.ByteBuffer value, java.nio.charset.Charset charset) throws java.nio.charset.CharacterCodingException- Specified by:
toStringin interfaceValueAccessor<java.nio.ByteBuffer>- Throws:
java.nio.charset.CharacterCodingException
-
valueOf
public java.nio.ByteBuffer valueOf(java.util.UUID v)
Description copied from interface:ValueAccessorreturn a value with the bytes from {@param v}- Specified by:
valueOfin interfaceValueAccessor<java.nio.ByteBuffer>
-
toHex
public java.lang.String toHex(java.nio.ByteBuffer value)
- Specified by:
toHexin interfaceValueAccessor<java.nio.ByteBuffer>
-
toByte
public byte toByte(java.nio.ByteBuffer value)
Description copied from interface:ValueAccessorreturns a byte from offset 0- Specified by:
toBytein interfaceValueAccessor<java.nio.ByteBuffer>
-
getByte
public byte getByte(java.nio.ByteBuffer value, int offset)Description copied from interface:ValueAccessorreturns a byte from offset {@param offset}- Specified by:
getBytein interfaceValueAccessor<java.nio.ByteBuffer>
-
toShort
public short toShort(java.nio.ByteBuffer value)
Description copied from interface:ValueAccessorreturns a short from offset 0- Specified by:
toShortin interfaceValueAccessor<java.nio.ByteBuffer>
-
getShort
public short getShort(java.nio.ByteBuffer value, int offset)Description copied from interface:ValueAccessorreturns a short from offset {@param offset}- Specified by:
getShortin interfaceValueAccessor<java.nio.ByteBuffer>
-
getUnsignedShort
public int getUnsignedShort(java.nio.ByteBuffer value, int offset)Description copied from interface:ValueAccessorreturns an unsigned short from offset {@param offset}- Specified by:
getUnsignedShortin interfaceValueAccessor<java.nio.ByteBuffer>
-
toInt
public int toInt(java.nio.ByteBuffer value)
Description copied from interface:ValueAccessorreturns an int from offset 0- Specified by:
toIntin interfaceValueAccessor<java.nio.ByteBuffer>
-
getInt
public int getInt(java.nio.ByteBuffer value, int offset)Description copied from interface:ValueAccessorreturns an int from offset {@param offset}- Specified by:
getIntin interfaceValueAccessor<java.nio.ByteBuffer>
-
toLong
public long toLong(java.nio.ByteBuffer value)
Description copied from interface:ValueAccessorreturns a long from offset 0- Specified by:
toLongin interfaceValueAccessor<java.nio.ByteBuffer>
-
getLong
public long getLong(java.nio.ByteBuffer value, int offset)Description copied from interface:ValueAccessorreturns a long from offset {@param offset}- Specified by:
getLongin interfaceValueAccessor<java.nio.ByteBuffer>
-
toFloat
public float toFloat(java.nio.ByteBuffer value)
Description copied from interface:ValueAccessorreturns a float from offset 0- Specified by:
toFloatin interfaceValueAccessor<java.nio.ByteBuffer>
-
toDouble
public double toDouble(java.nio.ByteBuffer value)
Description copied from interface:ValueAccessorreturns a double from offset 0- Specified by:
toDoublein interfaceValueAccessor<java.nio.ByteBuffer>
-
toUUID
public java.util.UUID toUUID(java.nio.ByteBuffer value)
Description copied from interface:ValueAccessorreturns a UUID from offset 0- Specified by:
toUUIDin interfaceValueAccessor<java.nio.ByteBuffer>
-
toTimeUUID
public TimeUUID toTimeUUID(java.nio.ByteBuffer value)
Description copied from interface:ValueAccessorreturns a TimeUUID from offset 0- Specified by:
toTimeUUIDin interfaceValueAccessor<java.nio.ByteBuffer>
-
toBallot
public Ballot toBallot(java.nio.ByteBuffer value)
Description copied from interface:ValueAccessorreturns a TimeUUID from offset 0- Specified by:
toBallotin interfaceValueAccessor<java.nio.ByteBuffer>
-
putByte
public int putByte(java.nio.ByteBuffer dst, int offset, byte value)Description copied from interface:ValueAccessorwrites the byte value {@param value} to {@param dst} at offset {@param offset}- Specified by:
putBytein interfaceValueAccessor<java.nio.ByteBuffer>- Returns:
- the number of bytes written to {@param value}
-
putShort
public int putShort(java.nio.ByteBuffer dst, int offset, short value)Description copied from interface:ValueAccessorwrites the short value {@param value} to {@param dst} at offset {@param offset}- Specified by:
putShortin interfaceValueAccessor<java.nio.ByteBuffer>- Returns:
- the number of bytes written to {@param value}
-
putInt
public int putInt(java.nio.ByteBuffer dst, int offset, int value)Description copied from interface:ValueAccessorwrites the int value {@param value} to {@param dst} at offset {@param offset}- Specified by:
putIntin interfaceValueAccessor<java.nio.ByteBuffer>- Returns:
- the number of bytes written to {@param value}
-
putLong
public int putLong(java.nio.ByteBuffer dst, int offset, long value)Description copied from interface:ValueAccessorwrites the long value {@param value} to {@param dst} at offset {@param offset}- Specified by:
putLongin interfaceValueAccessor<java.nio.ByteBuffer>- Returns:
- the number of bytes written to {@param value}
-
empty
public java.nio.ByteBuffer empty()
Description copied from interface:ValueAccessorreturn a value with a length of 0- Specified by:
emptyin interfaceValueAccessor<java.nio.ByteBuffer>
-
valueOf
public java.nio.ByteBuffer valueOf(byte[] bytes)
Description copied from interface:ValueAccessorreturn a value containing the {@param bytes} Caller should assume that modifying the returned value will also modify the contents of {@param bytes}- Specified by:
valueOfin interfaceValueAccessor<java.nio.ByteBuffer>
-
valueOf
public java.nio.ByteBuffer valueOf(java.nio.ByteBuffer bytes)
Description copied from interface:ValueAccessorreturn a value containing the {@param bytes} {@param src} and the returned value may share a common byte array instance, so caller should assume that modifying the returned value will also modify the contents of {@param src}- Specified by:
valueOfin interfaceValueAccessor<java.nio.ByteBuffer>
-
valueOf
public java.nio.ByteBuffer valueOf(java.lang.String v, java.nio.charset.Charset charset)Description copied from interface:ValueAccessorreturn a value containing the bytes for the given string and charset- Specified by:
valueOfin interfaceValueAccessor<java.nio.ByteBuffer>
-
valueOf
public java.nio.ByteBuffer valueOf(boolean v)
Description copied from interface:ValueAccessorreturn a value with the bytes from {@param v}- Specified by:
valueOfin interfaceValueAccessor<java.nio.ByteBuffer>
-
valueOf
public java.nio.ByteBuffer valueOf(byte v)
Description copied from interface:ValueAccessorreturn a value with the bytes from {@param v}- Specified by:
valueOfin interfaceValueAccessor<java.nio.ByteBuffer>
-
valueOf
public java.nio.ByteBuffer valueOf(short v)
Description copied from interface:ValueAccessorreturn a value with the bytes from {@param v}- Specified by:
valueOfin interfaceValueAccessor<java.nio.ByteBuffer>
-
valueOf
public java.nio.ByteBuffer valueOf(int v)
Description copied from interface:ValueAccessorreturn a value with the bytes from {@param v}- Specified by:
valueOfin interfaceValueAccessor<java.nio.ByteBuffer>
-
valueOf
public java.nio.ByteBuffer valueOf(long v)
Description copied from interface:ValueAccessorreturn a value with the bytes from {@param v}- Specified by:
valueOfin interfaceValueAccessor<java.nio.ByteBuffer>
-
valueOf
public java.nio.ByteBuffer valueOf(float v)
Description copied from interface:ValueAccessorreturn a value with the bytes from {@param v}- Specified by:
valueOfin interfaceValueAccessor<java.nio.ByteBuffer>
-
valueOf
public java.nio.ByteBuffer valueOf(double v)
Description copied from interface:ValueAccessorreturn a value with the bytes from {@param v}- Specified by:
valueOfin interfaceValueAccessor<java.nio.ByteBuffer>
-
convert
public <V2> java.nio.ByteBuffer convert(V2 src, ValueAccessor<V2> accessor)Description copied from interface:ValueAccessorConvert the data in {@param src} to {@param} {@param src} and the returned value may share a common byte array instance, so caller should assume that modifying the returned value will also modify the contents of {@param src} - Specified by:
convertin interfaceValueAccessor<java.nio.ByteBuffer>
-
allocate
public java.nio.ByteBuffer allocate(int size)
Description copied from interface:ValueAccessorAllocate and return a {@param} instance of {@param size} bytes on the heap. - Specified by:
allocatein interfaceValueAccessor<java.nio.ByteBuffer>
-
factory
public ValueAccessor.ObjectFactory<java.nio.ByteBuffer> factory()
Description copied from interface:ValueAccessorreturns theValueAccessor.ObjectFactoryfor the backing type {@param} - Specified by:
factoryin interfaceValueAccessor<java.nio.ByteBuffer>
-
-