Handle String serialization and deserialization, support both forward and backward read and write.
This does not use any compression technique, so it is most suitable for short string, e.g. vertex
id.
Important: it uses
IDHandler.STRING_ID_MARKER
as the first byte. This is because JanusGraph used
to assume all IDs are positive long values. To maintain backward compatibility, we have to make sure
JanusGraph knows how to distinguish between string ID and long ID when decoding binary data. The
convention is, if the first byte is STRING_MARKER, then it's a string ID, otherwise it's a long ID. This
leverages the fact that IDs are always positive, so the first byte would never be STRING_MARKER for long
IDs.
This class uses
StringSerializer
as a reference.