public Marshaller getMarshaller()

in lightning-core/src/main/java/org/apache/directmemory/lightning/internal/InternalMarshallerStrategy.java [111:147]


    public Marshaller getMarshaller( Type type, MarshallerContext marshallerContext, boolean baseMarshallersOnly )
    {
        Class<?> rawType = TypeUtil.getBaseType( type );
        if ( Streamed.class.isAssignableFrom( rawType ) )
        {
            return streamedMarshaller;
        }

        if ( !baseMarshallersOnly && Externalizable.class.isAssignableFrom( rawType ) )
        {
            return externalizableMarshaller;
        }

        if ( marshallerContext != null )
        {
            Marshaller marshaller = marshallerContext.getMarshaller( type );
            if ( marshaller != null )
            {
                return marshaller;
            }
        }

        for ( Marshaller temp : baseMarshaller )
        {
            if ( temp.acceptType( rawType ) )
            {
                return temp;
            }
        }

        if ( !baseMarshallersOnly && Serializable.class.isAssignableFrom( rawType ) && !rawType.isArray() )
        {
            return serializableMarshaller;
        }

        return null;
    }