Class SerializedObjectConverter

java.lang.Object
org.eclipse.persistence.mappings.converters.SerializedObjectConverter
All Implemented Interfaces:
Serializable, CoreConverter<DatabaseMapping,Session>, org.eclipse.persistence.internal.descriptors.ClassNameConversionRequired, Converter

public class SerializedObjectConverter extends Object implements Converter, org.eclipse.persistence.internal.descriptors.ClassNameConversionRequired

Purpose: The serialized object converter can be used to store an arbitrary object or set of objects into a database binary or character field. By default it uses the Java serializer so the target must be serializable. A custom Serializer can also be specified, such as XML or JSON.

See Also:
Author:
James Sutherland
  • Field Details

    • mapping

      protected DatabaseMapping mapping
    • serializer

      protected Serializer serializer
    • serializerClassName

      protected String serializerClassName
    • serializerPackage

      protected String serializerPackage
  • Constructor Details

    • SerializedObjectConverter

      public SerializedObjectConverter()
      PUBLIC: Default constructor.
    • SerializedObjectConverter

      public SerializedObjectConverter(DatabaseMapping mapping)
      PUBLIC: Default constructor.
    • SerializedObjectConverter

      public SerializedObjectConverter(DatabaseMapping mapping, Serializer serializer)
      PUBLIC: Default constructor.
    • SerializedObjectConverter

      public SerializedObjectConverter(DatabaseMapping mapping, String serializerClassName)
      PUBLIC: Default constructor.
  • Method Details

    • convertClassNamesToClasses

      public void convertClassNamesToClasses(ClassLoader classLoader)
      INTERNAL: Convert all the class-name-based settings in this converter to actual class-based settings. This method is used when converting a project that has been built with class names to a project with classes. This method is implemented by subclasses as necessary.
      Specified by:
      convertClassNamesToClasses in interface org.eclipse.persistence.internal.descriptors.ClassNameConversionRequired
      Parameters:
      classLoader -
    • convertDataValueToObjectValue

      public Object convertDataValueToObjectValue(Object fieldValue, Session session) throws DescriptorException
      INTERNAL: The fieldValue will be a byte array. Create a ByteArrayInputStream on the fieldValue. Create an ObjectInputStream on the ByteArrayInputStream to read in the objects.
      Specified by:
      convertDataValueToObjectValue in interface Converter
      Specified by:
      convertDataValueToObjectValue in interface CoreConverter<DatabaseMapping,Session>
      Throws:
      DescriptorException
    • convertObjectValueToDataValue

      public Object convertObjectValueToDataValue(Object attributeValue, Session session)
      INTERNAL: Convert the object to a byte array through serialize.
      Specified by:
      convertObjectValueToDataValue in interface Converter
      Specified by:
      convertObjectValueToDataValue in interface CoreConverter<DatabaseMapping,Session>
    • initialize

      public void initialize(DatabaseMapping mapping, Session session)
      INTERNAL: Set the mapping.
      Specified by:
      initialize in interface Converter
      Specified by:
      initialize in interface CoreConverter<DatabaseMapping,Session>
    • getMapping

      protected DatabaseMapping getMapping()
      INTERNAL: Return the mapping.
    • isMutable

      public boolean isMutable()
      INTERNAL: If the converter converts the value to a non-atomic value, i.e. a value that can have its' parts changed without being replaced, then it must return false, serialization can be non-atomic.
      Specified by:
      isMutable in interface Converter
    • getSerializer

      public Serializer getSerializer()
      Return the serialize used for this converter.
    • setSerializer

      public void setSerializer(Serializer serializer)
      Set the serialize used for this converter.
    • getSerializerClassName

      public String getSerializerClassName()
      Return the class name of the serializer.
    • setSerializerClassName

      public void setSerializerClassName(String serializerClassName)
      Set the class name of the serializer.
    • getSerializerPackage

      public String getSerializerPackage()
      Return the package used for XML and JSON serialization JAXBContext.
    • setSerializerPackage

      public void setSerializerPackage(String serializerPackage)
      Set the package used for XML and JSON serialization JAXBContext.