Class SerializedObjectConverter
- java.lang.Object
-
- org.eclipse.persistence.mappings.converters.SerializedObjectConverter
-
- All Implemented Interfaces:
java.io.Serializable
,CoreConverter<DatabaseMapping,Session>
,org.eclipse.persistence.internal.descriptors.ClassNameConversionRequired
,Converter
public class SerializedObjectConverter extends java.lang.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:
Serializer
,XMLSerializer
,JSONSerializer
, Serialized Form- Author:
- James Sutherland
- Since:
- OracleAS TopLink 10g (10.0.3)
-
-
Field Summary
Fields Modifier and Type Field Description protected DatabaseMapping
mapping
protected Serializer
serializer
protected java.lang.String
serializerClassName
protected java.lang.String
serializerPackage
-
Constructor Summary
Constructors Constructor Description SerializedObjectConverter()
PUBLIC: Default constructor.SerializedObjectConverter(DatabaseMapping mapping)
PUBLIC: Default constructor.SerializedObjectConverter(DatabaseMapping mapping, java.lang.String serializerClassName)
PUBLIC: Default constructor.SerializedObjectConverter(DatabaseMapping mapping, Serializer serializer)
PUBLIC: Default constructor.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
convertClassNamesToClasses(java.lang.ClassLoader classLoader)
INTERNAL: Convert all the class-name-based settings in this converter to actual class-based settings.java.lang.Object
convertDataValueToObjectValue(java.lang.Object fieldValue, Session session)
INTERNAL: The fieldValue will be a byte array.java.lang.Object
convertObjectValueToDataValue(java.lang.Object attributeValue, Session session)
INTERNAL: Convert the object to a byte array through serialize.protected DatabaseMapping
getMapping()
INTERNAL: Return the mapping.Serializer
getSerializer()
Return the serialize used for this converter.java.lang.String
getSerializerClassName()
Return the class name of the serializer.java.lang.String
getSerializerPackage()
Return the package used for XML and JSON serialization JAXBContext.void
initialize(DatabaseMapping mapping, Session session)
INTERNAL: Set the mapping.boolean
isMutable()
INTERNAL: If the converter converts the value to a non-atomic value, i.e.void
setSerializer(Serializer serializer)
Set the serialize used for this converter.void
setSerializerClassName(java.lang.String serializerClassName)
Set the class name of the serializer.void
setSerializerPackage(java.lang.String serializerPackage)
Set the package used for XML and JSON serialization JAXBContext.
-
-
-
Field Detail
-
mapping
protected DatabaseMapping mapping
-
serializer
protected Serializer serializer
-
serializerClassName
protected java.lang.String serializerClassName
-
serializerPackage
protected java.lang.String serializerPackage
-
-
Constructor Detail
-
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, java.lang.String serializerClassName)
PUBLIC: Default constructor.
-
-
Method Detail
-
convertClassNamesToClasses
public void convertClassNamesToClasses(java.lang.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 interfaceorg.eclipse.persistence.internal.descriptors.ClassNameConversionRequired
- Parameters:
classLoader
-
-
convertDataValueToObjectValue
public java.lang.Object convertDataValueToObjectValue(java.lang.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 interfaceConverter
- Specified by:
convertDataValueToObjectValue
in interfaceCoreConverter<DatabaseMapping,Session>
- Throws:
DescriptorException
-
convertObjectValueToDataValue
public java.lang.Object convertObjectValueToDataValue(java.lang.Object attributeValue, Session session)
INTERNAL: Convert the object to a byte array through serialize.- Specified by:
convertObjectValueToDataValue
in interfaceConverter
- Specified by:
convertObjectValueToDataValue
in interfaceCoreConverter<DatabaseMapping,Session>
-
initialize
public void initialize(DatabaseMapping mapping, Session session)
INTERNAL: Set the mapping.- Specified by:
initialize
in interfaceConverter
- Specified by:
initialize
in interfaceCoreConverter<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.
-
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 java.lang.String getSerializerClassName()
Return the class name of the serializer.
-
setSerializerClassName
public void setSerializerClassName(java.lang.String serializerClassName)
Set the class name of the serializer.
-
getSerializerPackage
public java.lang.String getSerializerPackage()
Return the package used for XML and JSON serialization JAXBContext.
-
setSerializerPackage
public void setSerializerPackage(java.lang.String serializerPackage)
Set the package used for XML and JSON serialization JAXBContext.
-
-