Represents the string table in a WBSAX event stream.
The string table stores a set of strings who's individual values and/or offsets may be evaluated indirectly using {@link StringReference}s, or who's summed binary content may be accessed directly.
The string table is generally a pain, because it's position in the WBSAX stream before the body of the document means that either the input side or the output side of WBSAX needs to go to the effort of "caching" the string table information.
Most modification of the string table is done through the {@link StringReferenceFactory}, which allows it's client to create string references and adds the strings to the string table at the same time. As a result, the methods of this class that are public are mostly the ones for inspecting the state of the string table, rather than modifying it.
The string table operates in two modes; incomplete and complete. If the string table is incomplete, then strings may be added to it, but the final binary representation of the string table may not be obtained. Conversely, if the string table is complete, then strings may not be added to it, but the final binary representation of the string table may be obtained.
The string table must be marked complete by the input side of WBSAX at some stage during a WBSAX "run". It may be marked at one of two points; either before {@link WBSAXContentHandler#startDocument} is called, or before {@link WBSAXContentHandler#endDocument} is called.
In the former case, it means that the "caching" of the string table is the responsibility of the input side, as all the strings in the string table must be created before start document is called, and the output side can get the binary representation of the string table at the point it may need to write it.
In the latter case, it means that the "caching" of the string table is the responsibility of the output side, as the strings in the string table are created at the point they are needed, and the binary representation of the string table is not available until all the content events have been fired.