Class TransparentConverter

  • All Implemented Interfaces:
    IConverter

    public class TransparentConverter
    extends Object
    implements IConverter
    A special “converter” that does not, in fact, convert anything, but simply passes whatever object it is given unchanged.

    This converter is especially intended to deal with slots whose range is set to linkml:Any (or, more precisely, to a class that “takes the role of linkml:Any”), which are represented in Java as Object-typed fields. The value of a such a field does not require any conversion (and in fact attempting to convert one using the generic ObjectConverter would lead to an error).

    • Constructor Detail

      • TransparentConverter

        public TransparentConverter()
    • Method Detail

      • getType

        public Class<?> getType()
        Description copied from interface: IConverter
        Gets the type of object that this converter can convert a raw object into.
        Specified by:
        getType in interface IConverter
      • convertForSlot

        public void convertForSlot​(Object raw,
                                   Object dest,
                                   Slot slot,
                                   ConverterContext ctx)
                            throws LinkMLRuntimeException
        Description copied from interface: IConverter
        Converts a raw object into a LinkML object and assigns the result to a slot of another object.
        Specified by:
        convertForSlot in interface IConverter
        Parameters:
        raw - The raw object to convert.
        dest - The object that should received the converted value.
        slot - The slot of the dest object to which the converted value should be assigned.
        ctx - The global converter context.
        Throws:
        LinkMLRuntimeException - If the converter cannot convert the given value, or cannot assign it to the target object/slot.
      • serialiseForSlot

        public Object serialiseForSlot​(Object object,
                                       Slot slot,
                                       ConverterContext ctx)
                                throws LinkMLRuntimeException
        Description copied from interface: IConverter
        Converts a LinkML object into a raw object, when the object is the value of a specific LinkML slot.

        We need such a method because the way to serialise a LinkML object into a raw object will sometimes depend on the slot to which the object belongs (the slot of which it is a value), especially with respect to inlining.

        Specified by:
        serialiseForSlot in interface IConverter
        Parameters:
        object - The LinkML object to convert.
        slot - The slot that the given object is a value of.
        ctx - The global converter context.
        Returns:
        The raw object that represents the original LinkML object.
        Throws:
        LinkMLRuntimeException - If the converter cannot convert the given object.