public class ClassID extends Object implements Duplicatable, GenericRecord
ClassID is not just 16 bytes stored in the wrong
order. Instead, it is a double word (4 bytes) followed by two
words (2 bytes each) followed by 8 bytes.The ClassID (or CLSID) is a UUID - see RFC 4122
| Modifier and Type | Field and Description |
|---|---|
static int |
LENGTH
The number of bytes occupied by this object in the byte stream.
|
| Constructor and Description |
|---|
ClassID()
Creates a ClassID and initializes its value with 0x00 bytes.
|
ClassID(byte[] src,
int offset)
Creates a ClassID and reads its value from a byte array.
|
ClassID(ClassID other)
Clones the given ClassID
|
ClassID(LittleEndianInput lei)
Reads the ClassID from the input
|
ClassID(String externalForm)
Creates a ClassID from a human-readable representation of the Class ID in standard
format
"{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}". |
| Modifier and Type | Method and Description |
|---|---|
ClassID |
copy() |
boolean |
equals(Object o)
Checks whether this
ClassID is equal to another object. |
boolean |
equalsInverted(ClassID o)
Checks whether this
ClassID is equal to another ClassID with inverted endianess,
because there are apparently not only version 1 GUIDs (aka "network" with big-endian encoding),
but also version 2 GUIDs (aka "native" with little-endian encoding) out there. |
byte[] |
getBytes()
Gets the bytes making out the class ID.
|
Map<String,Supplier<?>> |
getGenericProperties() |
int |
hashCode() |
int |
length() |
byte[] |
read(byte[] src,
int offset)
Reads the class ID's value from a byte array by turning little-endian into big-endian.
|
void |
setBytes(byte[] bytes)
Sets the bytes making out the class ID.
|
String |
toString()
Returns a human-readable representation of the Class ID in standard
format
"{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}". |
UUID |
toUUID()
Converts the ClassID to an UUID
|
String |
toUUIDString()
Returns a human-readable representation of the Class ID in UUID
format
"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx". |
void |
write(byte[] dst,
int offset)
Writes the class ID to a byte array in the little-endian format.
|
void |
write(LittleEndianOutput leo)
Write the class ID to a LittleEndianOutput (stream)
|
clone, finalize, getClass, notify, notifyAll, wait, wait, waitgetGenericChildren, getGenericRecordTypepublic static final int LENGTH
public ClassID(byte[] src,
int offset)
src - The byte array to read from.offset - The offset of the first byte to read.public ClassID()
public ClassID(ClassID other)
other - The ClassID to use a base for creating this onepublic ClassID(String externalForm)
"{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}".externalForm - representation of the Class ID represented by this object.public ClassID(LittleEndianInput lei)
lei - the input (stream)public int length()
public byte[] getBytes()
public void setBytes(byte[] bytes)
bytes - The bytes making out the class ID in big-endian format. They
are copied without their order being changed.public byte[] read(byte[] src,
int offset)
src - The byte array to read fromoffset - The offset within the src byte arraypublic void write(byte[] dst,
int offset)
throws ArrayStoreException
dst - The byte array to write to.offset - The offset within the dst byte array.ArrayStoreException - if there is not enough room for the class
ID 16 bytes in the byte array after the offset position.public void write(LittleEndianOutput leo)
leo - the outputpublic boolean equals(Object o)
ClassID is equal to another object.public boolean equalsInverted(ClassID o)
ClassID is equal to another ClassID with inverted endianess,
because there are apparently not only version 1 GUIDs (aka "network" with big-endian encoding),
but also version 2 GUIDs (aka "native" with little-endian encoding) out there.o - the object to compare this ClassID withtrue if the objects are equal, else false.public String toString()
"{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}".public String toUUIDString()
"xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx".public UUID toUUID()
public ClassID copy()
copy in interface Duplicatablepublic Map<String,Supplier<?>> getGenericProperties()
getGenericProperties in interface GenericRecord