static void transferObject(Pipe.Schema<Object> pipeSchema, Pipe pipe,
            Input input, Output output, IdStrategy strategy, int number)
            throws IOException
    {
        final Pipe.Schema<Object> derivedPipeSchema = strategy.transferPojoId(
                input, output, number).getPipeSchema();
        
        if (output instanceof StatefulOutput)
        {
            // update using the derived schema.
            ((StatefulOutput) output).updateLast(derivedPipeSchema, pipeSchema);
        }
        
        Pipe.transferDirect(derivedPipeSchema, pipe, input, output);
    }
Will be used if either {@link RuntimeEnv#POJO_SCHEMA_ON_COLLECTION_FIELDS} or 
{@link RuntimeEnv#POJO_SCHEMA_ON_MAP_FIELDS} is set.

Applies to a field which is an interface and the type is assignable from Collection or Map.

@author David Yu
@created May 19, 2016
protostuff-runtime/src/main/java/io/protostuff/runtime/PolymorphicPojoSchema.java