INTERNED_STRING

Primitive.

objectType:

INTERNED_STRING = 10 ;

Description:

An INTERNED_STRING is similar to a STRING, but two INTERNED_STRINGS which are read by serializers using the same interning table, and which consist of the same sequence of characters, will point to the same InternedStringPrimitiveObject. Like STRING, the INTERNED_STRING primitive object is used when you need to specify an arbitrary length sequence of characters. It consists of the objectType Integer (the byte 0A), followed by an Integer encoding the number of bytes that the encoding of the string consumes, followed by that many bytes of data. The bytes of data are the UTF encoding of the UNICODE characters in the string.

Internal format:

InternedStringPrimitiveObject {
    Integer objectType; // == INTERNED_STRING
    byte value[length];
}

External format:

SerializedInternedStringPrimitiveObject {
    Integer objectType; // == INTERNED_STRING
    Integer length;
    byte value[length];
}

Examples:

0A 0E 66 65   INTERNED_STRING "ferd is a ferd"
72 64 20 69
73 20 61 20
66 65 72 64

0A 00         INTERNED_STRING ""