Class ObjectConverter

java.lang.Object
cz.cvut.kbss.jopa.oom.converter.ObjectConverter
All Implemented Interfaces:
AttributeConverter<Object,Object>, ConverterWrapper<Object,Object>

public class ObjectConverter extends Object implements ConverterWrapper<Object,Object>
Allows to convert values between arbitrary types.

The main intended use is for annotation property mapping to attributes of type Object, which can hold both literal values and references to other individuals. In that case, the loaded instance is a NamedResource and needs to be transformed to a URI to prevent the internal OntoDriver API from leaking into the application.

Similarly, OntoDriver API's LangString is transformed to MultilingualString.

In all other cases, the values will be just returned without any conversion.

  • Constructor Details

    • ObjectConverter

      public ObjectConverter()
    • ObjectConverter

      public ObjectConverter(boolean preferMultilingualString)
  • Method Details

    • convertToAxiomValue

      public Object convertToAxiomValue(Object value)
      Description copied from interface: AttributeConverter
      Converts the value stored in the entity attribute into the data representation to be stored in the repository and supported by the OntoDriver API.
      Specified by:
      convertToAxiomValue in interface AttributeConverter<Object,Object>
      Parameters:
      value - Value to convert
      Returns:
      Converted data
    • convertToAttribute

      public Object convertToAttribute(Object value)
      Description copied from interface: AttributeConverter
      Converts the data stored in the repository into the value to be stored in the entity attribute.

      Note that it is the responsibility of the converter writer to specify the correct value type for the corresponding value for use by the OntoDriver: i.e., persistence providers are not expected to do such type conversion.

      Specified by:
      convertToAttribute in interface AttributeConverter<Object,Object>
      Parameters:
      value - Value to convert
      Returns:
      Converted data
    • supportsAxiomValueType

      public boolean supportsAxiomValueType(Class<?> type)
      Description copied from interface: ConverterWrapper
      Checks whether the wrapped converter supports converting the specified axiom value type.
      Specified by:
      supportsAxiomValueType in interface ConverterWrapper<Object,Object>
      Parameters:
      type - Axiom value type
      Returns:
      Whether the type is supported by this wrapper
    • doesPreferMultilingualString

      public boolean doesPreferMultilingualString()