private static <E extends Enum<E>> MapSchema.MessageFactory newEnumMapFactory(
            final EnumIO<E> eio)
    {
        return new MapSchema.MessageFactory()
        {
            @Override
            @SuppressWarnings("unchecked")
            public <K, V> Map<K, V> newMessage()
            {
                return (Map<K, V>) eio.newEnumMap();
            }

            @Override
            public Class<?> typeClass()
            {
                return EnumMap.class;
            }
        };
    }
Transfers the {@link Enum} from the input to the output.
protostuff-runtime/src/main/java/io/protostuff/runtime/EnumIO.java