@Override
    @SuppressWarnings("unchecked")
    public void writeTo(final Output output, final Object value)
            throws IOException
    {
        final Schema<Object> schema = strategy.writePojoIdTo(output, ID_POJO,
                (Class<Object>) value.getClass()).getSchema();

        if (output instanceof StatefulOutput)
        {
            // update using the derived schema.
            ((StatefulOutput) output).updateLast(schema, this);
        }

        // write the rest of the fields of the exact type
        schema.writeTo(output, value);
    }
Delegates to the schema derived from the {@code value}.
protostuff-runtime/src/main/java/io/protostuff/runtime/DerivativeSchema.java