Package com.tangosol.io.pof
Class SafeConfigurablePofContext
java.lang.Object
com.tangosol.io.pof.ConfigurablePofContext
com.tangosol.io.pof.SafeConfigurablePofContext
- All Implemented Interfaces:
ClassLoaderAware
,PofContext
,Serializer
,XmlConfigurable
SafeConfigurablePofContext is an extension of ConfigurablePofContext that can
serialize and deserialize any valid POF user type, even those that have not
been explicitly configured, as well as any Java serializable types
(Serializable, Externalizable, or ExternalizableLite).
Important note: this PofContext has the following limitations:
- SafeConfigurablePofContext is supported only for Java clients;
- its performance is less optimal than of the ConfigurablePofContext;
- the serialized form produced by the SafeConfigurablePofContext will not be recognized by POF aware ValueExtractors.
For user types that have been explicitly configured, the SafeConfigurablePofContext behaves identical to the ConfigurablePofContext.
- Since:
- Coherence 3.3
- Author:
- jh 2007.05.03
-
Nested Class Summary
Modifier and TypeClassDescriptionclass
Serializer used for Serializable and ExternalizableLite objects.class
Default Java serializer.class
Serializer used for objects implementing the PortableObject interface.Nested classes/interfaces inherited from class com.tangosol.io.pof.ConfigurablePofContext
ConfigurablePofContext.PofConfig
-
Field Summary
Modifier and TypeFieldDescriptionstatic final int
The type identifier for objects that implement the PortableObject interface.static final int
The type identifier for Java Serializable (including the ExternalizableLite format) objects.Fields inherited from class com.tangosol.io.pof.ConfigurablePofContext
DEFAULT_INDEX_FILE_NAME, DEFAULT_RESOURCE, PROPERTY_CONFIG, ROOT_LAMBDA_CLASS
-
Constructor Summary
ConstructorDescriptionDefault constructor.SafeConfigurablePofContext
(Serializer serializer, ClassLoader loader) Create a SafeConfigurablePofContext that serializes instances of non-POF classes with specified serializer.Create a SafeConfigurablePofContext that will use the passed configuration information.SafeConfigurablePofContext
(String sLocator) Create a SafeConfigurablePofContext that will load configuration information from the specified locator. -
Method Summary
Modifier and TypeMethodDescriptiongetClass
(int nTypeId) Determine the class associated with the given user type identifier.protected int
getGenericTypeId
(Class clz) For user types that are not registered in the POF configuration used by this PofContext, determine if the user type can be serialized using POF, otherwise determine if the user type can be serialized using the traditional (pre-POF) Coherence Java Serialization format that supports Java Serializable and ExternalizableLite objects.getName()
Return the name of this serializer.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
Determine the user type identifier associated with the given class.int
getUserTypeIdentifier
(String sClass) Determine the user type identifier associated with the given class name.boolean
isUserType
(Class clz) Determine if the given class is 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.Methods inherited from class com.tangosol.io.pof.ConfigurablePofContext
appendDefaultSerializerToUserTypes, checkNotInitialized, createPofConfig, deserialize, ensureInitialized, getClassName, getConfig, getConfigLocation, getContextClassLoader, getIndexFileName, getInheritedUserTypeIdentifier, getPofConfig, getUserTypeIdentifier, getUserTypeIdentifierInternal, getUserTypeIdentifierInternal, initialize, instantiateSerializer, instantiateSerializer, isInitialized, isInterfaceAllowed, isLambdaAllowed, isPreferJavaTime, isReferenceEnabled, isSubclassAllowed, isUserType, loadClass, mergeIncludes, report, serialize, setConfig, setContextClassLoader, setIndexFileName, setPreferJavaTime, setReferenceEnabled, toString
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Methods inherited from interface com.tangosol.io.Serializer
deserialize
-
Field Details
-
TYPE_PORTABLE
public static final int TYPE_PORTABLEThe type identifier for objects that implement the PortableObject interface.- See Also:
-
TYPE_SERIALIZABLE
public static final int TYPE_SERIALIZABLEThe type identifier for Java Serializable (including the ExternalizableLite format) objects.- See Also:
-
-
Constructor Details
-
SafeConfigurablePofContext
public SafeConfigurablePofContext()Default constructor.Create a default SafeConfigurablePofContext that will load configuration information from the locator specified in
ConfigurablePofContext.DEFAULT_RESOURCE
. -
SafeConfigurablePofContext
Create a SafeConfigurablePofContext that will load configuration information from the specified locator.- Parameters:
sLocator
- the locator that specifies the location of the PofContext configuration file; the locator is either a valid path or a URL
-
SafeConfigurablePofContext
Create a SafeConfigurablePofContext that serializes instances of non-POF classes with specified serializer.- Parameters:
serializer
- cache config specified serializer to use for non-POF typesloader
- context classloader to use with serializer
-
SafeConfigurablePofContext
Create a SafeConfigurablePofContext that will use the passed configuration information.- Parameters:
xml
- an XmlElement containing information in the format of a configuration file used by SafeConfigurablePofContext
-
-
Method Details
-
getName
Description copied from interface:Serializer
Return the name of this serializer.- Specified by:
getName
in interfaceSerializer
- Overrides:
getName
in classConfigurablePofContext
- Returns:
- the name of this serializer
-
getPofSerializer
Return a PofSerializer that can be used to serialize and deserialize an object of the specified user type to and from a POF stream.- Specified by:
getPofSerializer
in interfacePofContext
- Overrides:
getPofSerializer
in classConfigurablePofContext
- Parameters:
nTypeId
- the type identifier of the user type that can be serialized and deserialized using the returned PofSerializer; must be non-negative- Returns:
- a PofSerializer for the specified user type
-
getClass
Determine the class associated with the given user type identifier.- Specified by:
getClass
in interfacePofContext
- Overrides:
getClass
in classConfigurablePofContext
- Parameters:
nTypeId
- the user type identifier; must be non-negative- Returns:
- the class associated with the specified user type identifier
-
getUserTypeIdentifier
Determine the user type identifier associated with the given class.- Specified by:
getUserTypeIdentifier
in interfacePofContext
- Overrides:
getUserTypeIdentifier
in classConfigurablePofContext
- Parameters:
clz
- a user type class; must not be null- Returns:
- the type identifier of the user type associated with the given class
-
getUserTypeIdentifier
Determine the user type identifier associated with the given class name.- Specified by:
getUserTypeIdentifier
in interfacePofContext
- Overrides:
getUserTypeIdentifier
in classConfigurablePofContext
- Parameters:
sClass
- the name of a user type class; must not be null- Returns:
- the type identifier of the user type associated with the given class name
-
isUserType
Determine if the given class is a user type known to this PofContext.- Specified by:
isUserType
in interfacePofContext
- Overrides:
isUserType
in classConfigurablePofContext
- Parameters:
clz
- the class to test; must not be null- Returns:
- true iff the specified class is a valid user type
-
isUserType
Determine if the class with the given name is a user type known to this PofContext.- Specified by:
isUserType
in interfacePofContext
- Overrides:
isUserType
in classConfigurablePofContext
- Parameters:
sClass
- the name of the class to test; must not be null- Returns:
- true iff the class with the specified name is a valid user type
-
getGenericTypeId
For user types that are not registered in the POF configuration used by this PofContext, determine if the user type can be serialized using POF, otherwise determine if the user type can be serialized using the traditional (pre-POF) Coherence Java Serialization format that supports Java Serializable and ExternalizableLite objects.- Parameters:
clz
- a user type class that is not configured in this PofContext- Returns:
- a special user type id that indicates that the user type is supported by "generic" POF serialization or traditional Java serialization embedded in a POF stream
-