Class ByteValue
- java.lang.Object
-
- org.apache.flink.types.ByteValue
-
- All Implemented Interfaces:
Serializable
,Comparable<ByteValue>
,IOReadableWritable
,CopyableValue<ByteValue>
,NormalizableKey<ByteValue>
,ResettableValue<ByteValue>
,Value
@Public public class ByteValue extends Object implements NormalizableKey<ByteValue>, ResettableValue<ByteValue>, CopyableValue<ByteValue>
Boxed serializable and comparable byte type, representing the primitive typebyte
(signed 8 bit integer).- See Also:
- Serialized Form
-
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description int
compareTo(ByteValue o)
ByteValue
copy()
Performs a deep copy of this object into a new instance.void
copy(DataInputView source, DataOutputView target)
Copies the next serialized instance fromsource
totarget
.void
copyNormalizedKey(MemorySegment target, int offset, int len)
Writes a normalized key for the given record into the target byte array, starting at the specified position an writing exactly the given number of bytes.void
copyTo(ByteValue target)
Performs a deep copy of this object into thetarget
instance.boolean
equals(Object obj)
int
getBinaryLength()
Gets the length of the data type when it is serialized, in bytes.int
getMaxNormalizedKeyLen()
Gets the maximal length of normalized keys that the data type would produce to determine the order of instances solely by the normalized key.byte
getValue()
Returns the value of the encapsulated byte.int
hashCode()
void
read(DataInputView in)
Reads the object's internal data from the given data input view.void
setValue(byte value)
Sets the encapsulated byte to the specified value.void
setValue(ByteValue value)
Sets the encapsulated value to another valueString
toString()
void
write(DataOutputView out)
Writes the object's internal data to the given data output view.
-
-
-
Method Detail
-
getValue
public byte getValue()
Returns the value of the encapsulated byte.- Returns:
- the value of the encapsulated byte.
-
setValue
public void setValue(byte value)
Sets the encapsulated byte to the specified value.- Parameters:
value
- the new value of the encapsulated byte.
-
setValue
public void setValue(ByteValue value)
Description copied from interface:ResettableValue
Sets the encapsulated value to another value- Specified by:
setValue
in interfaceResettableValue<ByteValue>
- Parameters:
value
- the new value of the encapsulated value
-
read
public void read(DataInputView in) throws IOException
Description copied from interface:IOReadableWritable
Reads the object's internal data from the given data input view.- Specified by:
read
in interfaceIOReadableWritable
- Parameters:
in
- the input view to read the data from- Throws:
IOException
- thrown if any error occurs while reading from the input stream
-
write
public void write(DataOutputView out) throws IOException
Description copied from interface:IOReadableWritable
Writes the object's internal data to the given data output view.- Specified by:
write
in interfaceIOReadableWritable
- Parameters:
out
- the output view to receive the data.- Throws:
IOException
- thrown if any error occurs while writing to the output stream
-
compareTo
public int compareTo(ByteValue o)
- Specified by:
compareTo
in interfaceComparable<ByteValue>
-
getMaxNormalizedKeyLen
public int getMaxNormalizedKeyLen()
Description copied from interface:NormalizableKey
Gets the maximal length of normalized keys that the data type would produce to determine the order of instances solely by the normalized key. A value ofInteger
.MAX_VALUE is interpreted as infinite.For example, 32 bit integers return four, while Strings (potentially unlimited in length) return
Integer
.MAX_VALUE.- Specified by:
getMaxNormalizedKeyLen
in interfaceNormalizableKey<ByteValue>
- Returns:
- The maximal length of normalized keys.
-
copyNormalizedKey
public void copyNormalizedKey(MemorySegment target, int offset, int len)
Description copied from interface:NormalizableKey
Writes a normalized key for the given record into the target byte array, starting at the specified position an writing exactly the given number of bytes. Note that the comparison of the bytes is treating the bytes as unsigned bytes:int byteI = bytes[i] & 0xFF;
If the meaningful part of the normalized key takes less than the given number of bytes, then it must be padded. Padding is typically required for variable length data types, such as strings. The padding uses a special character, either
0
or0xff
, depending on whether shorter values are sorted to the beginning or the end.- Specified by:
copyNormalizedKey
in interfaceNormalizableKey<ByteValue>
- Parameters:
target
- The memory segment to put the normalized key bytes into.offset
- The offset in the byte array where the normalized key's bytes should start.len
- The number of bytes to put.
-
getBinaryLength
public int getBinaryLength()
Description copied from interface:CopyableValue
Gets the length of the data type when it is serialized, in bytes.- Specified by:
getBinaryLength
in interfaceCopyableValue<ByteValue>
- Returns:
- The length of the data type, or
-1
, if variable length.
-
copyTo
public void copyTo(ByteValue target)
Description copied from interface:CopyableValue
Performs a deep copy of this object into thetarget
instance.- Specified by:
copyTo
in interfaceCopyableValue<ByteValue>
- Parameters:
target
- Object to copy into.
-
copy
public ByteValue copy()
Description copied from interface:CopyableValue
Performs a deep copy of this object into a new instance.This method is useful for generic user-defined functions to clone a
CopyableValue
when storing multiple objects. With object reuse a deep copy must be created and type erasure prevents calling new.- Specified by:
copy
in interfaceCopyableValue<ByteValue>
- Returns:
- New object with copied fields.
-
copy
public void copy(DataInputView source, DataOutputView target) throws IOException
Description copied from interface:CopyableValue
Copies the next serialized instance fromsource
totarget
.This method is equivalent to calling
IOReadableWritable.read(DataInputView)
followed byIOReadableWritable.write(DataOutputView)
but does not require intermediate deserialization.- Specified by:
copy
in interfaceCopyableValue<ByteValue>
- Parameters:
source
- Data source for serialized instance.target
- Data target for serialized instance.- Throws:
IOException
- See Also:
IOReadableWritable
-
-