@SuppressWarnings ("unchecked" )
    @Override
    public Collection<?> get( ByteBuffer in )
    {
        Integer size = Compress.getIntUnsignedNullable( in );

        if (size == null)
        {
            return null;
        }

        Integer flag = Integer.valueOf( in.get() & 0xFF );
        Constructor<?> constructor = constructorMap.get( flag );

        try
        {
            Collection<Object> collection = (Collection<Object>)constructor.newInstance();
            Reflect<Class<?>> componentClassReflect = ReflectRegistry.get( Class.class );
            Class<?> componentType = componentClassReflect.get( in );
            Reflect<Object> componentReflect = ReflectFactory.create( componentType );

            for (int i = 0; i < size; i++)
            {
                collection.add( componentReflect.get( in ) );
            }

            return collection;
        }
        catch (Exception e)
        {
            throw new RuntimeException( e );
        }
    }