@Override
                    protected void writeLengthTo(Output output, int len, boolean primitive)
                            throws IOException
                    {
                        if (primitive)
                            output.writeInt32(ArraySchemas.ID_ARRAY_LEN, len, false);
                        else
                            output.writeInt32(ArraySchemas.ID_ARRAY_LEN, -(len + 1), false);
                    }
This base class handles all the IO for reading and writing polymorphic fields. When a field's type is
polymorphic/dynamic (e.g interface/abstract/object), the type (id) needs to be written (ahead) before its
value/content to be able to deserialize it correctly.
<p>
The underlying impl will determine how the type (id) should be written.
<p>
An {@link IdStrategy} is standalone if the {@link #primaryGroup} is not set.

@author Leo Romanoff
@author David Yu
protostuff-runtime/src/main/java/io/protostuff/runtime/IdStrategy.java