toParseableString

Encode a possibly null value as a String for later decoding by fromParseableString().
The string value must be self-delimiting, i.e., decodable even when followed by arbitrary additional characters,
and must not start with whitespace or closing square bracket ("]").

In addition, each of the characters in the returned String must be one of the valid XML characters
(tab, newline, carriage return, \u0020 - \ud7ff, and \ue000 - \fffdf).

convert

For a non-null value, the implementation in FieldType first checks whether the value is already
a valid value for this type; if so, the value is returned. Otherwise, it invokes type.toString(value) to convert value into a String, and then attempts to parse that string via
this.fromString(); if the parse fails, an IllegalArgumentException is thrown.

compare

This method must provide a total ordering of all supported Java values that is consistent with the database ordering,
i.e., the unsigned lexicographical ordering of the corresponding byte[] encoded field values.

If null is a supported Java value, then the returned Comparator must accept null parameters without
throwing an exception (note, this is a stronger requirement than the Comparator interface normally requires).