public class SimplePofContext extends Object implements PofContext
PofContext
implementation.PortableObjectSerializer
Modifier and Type | Field and Description |
---|---|
protected boolean |
m_fPreferJavaTime
True if Java 8 date/time types (java.time.*) should be preferred over legacy types.
|
protected boolean |
m_fReferenceEnabled
True if POF Identity/Reference type support is enabled.
|
protected LongArray |
m_laClass
A LongArray of user types, indexed by type identifier.
|
protected LongArray |
m_laSerializer
A LongArray of PofSerializer objects, indexed by type identifier.
|
protected Map |
m_mapTypeId
A Map that contains mappings from a registered user type into type identifier.
|
Constructor and Description |
---|
SimplePofContext()
Create a new SimplePofContext.
|
Modifier and Type | Method and Description |
---|---|
Object |
deserialize(ReadBuffer.BufferInput in)
Deserialize an object from a ReadBuffer by reading its state using the specified BufferInput object.
|
Class |
getClass(int nTypeId)
Determine the class associated with the given user type identifier.
|
String |
getClassName(int nTypeId)
Determine the name of the class associated with the given user type identifier.
|
PofSerializer |
getPofSerializer(int nTypeId)
Return a PofSerializer that can be used to serialize and deserialize an object of the specified user type to and from a POF stream.
|
int |
getUserTypeIdentifier(Class clz)
Determine the user type identifier associated with the given class.
|
int |
getUserTypeIdentifier(Object o)
Determine the user type identifier associated with the given object.
|
int |
getUserTypeIdentifier(String sClass)
Determine the user type identifier associated with the given class name.
|
boolean |
isPreferJavaTime()
Return <c>true</c> if
PofReader.readObject(int) method should return the appropriate Java 8 date/time type, or <c>false</c> if a legacy date/time types should be returned in order to preserve backwards compatibility. |
boolean |
isReferenceEnabled()
Determine if Identity/Reference type support is enabled for this SimplePofContext.
|
boolean |
isUserType(Class clz)
Determine if the given class is a user type known to this PofContext.
|
boolean |
isUserType(Object o)
Determine if the given object is of a user type known to this PofContext.
|
boolean |
isUserType(String sClass)
Determine if the class with the given name is a user type known to this PofContext.
|
void |
registerUserType(int nTypeId, Class clz, PofSerializer serializer)
Associate a user type with a type identifier and
PofSerializer . |
void |
serialize(WriteBuffer.BufferOutput out, Object o)
Serialize an object to a WriteBuffer by writing its state using the specified BufferOutput object.
|
void |
setPreferJavaTime(boolean fPreferJavaTime)
Set the flag specifying if Java 8 date/time types (java.time.*) should be preferred over legacy types.
|
void |
setReferenceEnabled(boolean fEnabled)
Enable or disable POF Identity/Reference type support for this SimplePofContext.
|
void |
unregisterUserType(int nTypeId)
Unregister a user type that was previously registered using the specified type identifier.
|
protected void |
validateTypeId(int nTypeId)
Ensure that the given user type identifier is valid.
|
protected Map m_mapTypeId
protected LongArray m_laClass
protected LongArray m_laSerializer
protected boolean m_fReferenceEnabled
protected boolean m_fPreferJavaTime
public void serialize(WriteBuffer.BufferOutput out, Object o) throws IOException
Note: Starting with Coherence 12.2.1 classes that need to designate an alternative object to be used by the Serializer when writing the object to the buffer should implement the SerializationSupport.writeReplace()
method.
serialize
in interface Serializer
out
- the BufferOutput with which to write the object's stateo
- the object to serializeIOException
- if an I/O error occurspublic Object deserialize(ReadBuffer.BufferInput in) throws IOException
Note: Starting with Coherence 12.2.1 classes that need to designate an alternative object to be returned by the Serializer after an object is deserialized from the buffer should implement the SerializationSupport.readResolve()
method.
deserialize
in interface Serializer
in
- the BufferInput with which to read the object's stateIOException
- if an I/O error occurspublic PofSerializer getPofSerializer(int nTypeId)
getPofSerializer
in interface PofContext
nTypeId
- the type identifier of the user type that can be serialized and deserialized using the returned PofSerializer; must be non-negativepublic int getUserTypeIdentifier(Object o)
getUserTypeIdentifier
in interface PofContext
o
- an instance of a user type; must not be nullpublic int getUserTypeIdentifier(Class clz)
getUserTypeIdentifier
in interface PofContext
clz
- a user type class; must not be nullpublic int getUserTypeIdentifier(String sClass)
getUserTypeIdentifier
in interface PofContext
sClass
- the name of a user type class; must not be nullpublic String getClassName(int nTypeId)
getClassName
in interface PofContext
nTypeId
- the user type identifier; must be non-negativepublic Class getClass(int nTypeId)
getClass
in interface PofContext
nTypeId
- the user type identifier; must be non-negativepublic boolean isUserType(Object o)
isUserType
in interface PofContext
o
- the object to test; must not be nullpublic boolean isUserType(Class clz)
isUserType
in interface PofContext
clz
- the class to test; must not be nullpublic boolean isUserType(String sClass)
isUserType
in interface PofContext
sClass
- the name of the class to test; must not be nullpublic boolean isPreferJavaTime()
PofReader.readObject(int)
method should return the appropriate Java 8 date/time type, or <c>false</c> if a legacy date/time types should be returned in order to preserve backwards compatibility.isPreferJavaTime
in interface PofContext
public void registerUserType(int nTypeId, Class clz, PofSerializer serializer)
PofSerializer
.nTypeId
- the type identifier of the specified user type; must be greater or equal to 0clz
- the user type to register with this PofContext; must not be nullserializer
- the PofSerializer that will be used to serialize and deserialize objects of the specified class; must not be nullIllegalArgumentException
- on invalid type identifer, class, or PofSerializerpublic void unregisterUserType(int nTypeId)
nTypeId
- the type identifier of the user type to unregisterIllegalArgumentException
- if the specified user type identifier is unknown to this PofContextpublic void setPreferJavaTime(boolean fPreferJavaTime)
protected void validateTypeId(int nTypeId)
nTypeId
- the user type identifier to validateIllegalArgumentException
- if the given user type identifier is negativepublic boolean isReferenceEnabled()
public void setReferenceEnabled(boolean fEnabled)
fEnabled
- true to enable POF Identity/Reference type support; false to disable