Class CurieConverter

All Implemented Interfaces:
IConverter

public class CurieConverter extends StringConverter
A converter for String-typed fields whose value is expected to be a CURIE.

This is especially intended for slots of type uriOrCurie. The converter will automatically expand the CURIE upon deserialising the data, so that after parsing we no longer need to worry about the presence of CURIEs anywhere – there will only be full-length IRIs. Conversely, when serialising the data the converter will take care of compacting the IRIs back into CURIE form.

This is basically a generalisation of the approach previously used specifically for SSSOM-Java: expand CURIEs as soon as possible upon receiving data, contract them as late as possible upon writing data. In between, you only need to deal with full-length IRIs. This is the only sane way of working with CURIEs.

Note: This class would normally belong to the org.incenp.linkml.core.converters package, along with all other IConverter implementations. But LinkML-Py’s Java generator used to assume that CurieConverter was in the core package instead, so for backwards compatibility it has to remain here.

  • Field Details

  • Constructor Details

    • CurieConverter

      public CurieConverter()
  • Method Details

    • getURI

      public String getURI()
      Description copied from interface: IConverter
      Gets the URI identifying the LinkML type this converter is intended for.

      This is intended to provide another way to look up converter objects, if looking up by the Java type (using IConverter.getType()) is not enough (typically, when several LinkML types are rendered using the same Java type).

      Returns:
      The LinkML type URI. May be null.
    • convertImpl

      protected Object convertImpl(Object raw, ConverterContext ctx) throws LinkMLRuntimeException
      Description copied from class: ScalarConverterBase
      Performs the actual type conversion.
      Overrides:
      convertImpl in class StringConverter
      Parameters:
      raw - The raw object to convert. This is guaranteed to be a non-null, non-list, non-dictionary object.
      Returns:
      The converted value.
      Throws:
      LinkMLRuntimeException - If the converter cannot convert the given value.
    • serialise

      public Object serialise(Object object, ConverterContext ctx) throws LinkMLRuntimeException
      Description copied from interface: IConverter
      Converts a LinkML object into a raw object.

      Given the Java representation of a LinkML object, this method shall return an object suitable to be given to a generic JSON/YAML writer.

      Specified by:
      serialise in interface IConverter
      Overrides:
      serialise in class ScalarConverterBase
      Parameters:
      object - The LinkML object to convert.
      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.