Class ClassCopierFactoryPipelineImpl
java.lang.Object
org.glassfish.pfl.dynamic.copyobject.impl.ClassCopierFactoryPipelineImpl
- All Implemented Interfaces:
ClassCopierFactory,PipelineClassCopierFactory
A factory used for creating ClassCopier instances.
An instance of this factory can be created and customized to
handle special copying semantics for certain classes.
This maintains a cache of ClassCopiers, so that a ClassCopier is
never created more than once for a particular class.
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptiongetClassCopier(Class<?> cls) Analyze cls to determine the appropriate ClassCopier and return the ClassCopier instance.lookupInCache(Class<?> cls) Look for cls only in the cache; do not create a ClassCopier if there isn't one already in the cache.booleanreflectivelyCopyable(Class<?> cls) Added this method so reflective copier could check if serializable object contains a transient field of specific type.final voidregisterImmutable(Class<?> cls) Register an immutable class, so that it will not be copied, but just passed by reference.voidSet a special ClassCopierFactory to handle some application specific needs.
-
Constructor Details
-
ClassCopierFactoryPipelineImpl
public ClassCopierFactoryPipelineImpl()
-
-
Method Details
-
reflectivelyCopyable
Description copied from interface:PipelineClassCopierFactoryAdded this method so reflective copier could check if serializable object contains a transient field of specific type.- Specified by:
reflectivelyCopyablein interfacePipelineClassCopierFactory
-
lookupInCache
Look for cls only in the cache; do not create a ClassCopier if there isn't one already in the cache.- Specified by:
lookupInCachein interfacePipelineClassCopierFactory
-
registerImmutable
Register an immutable class, so that it will not be copied, but just passed by reference.- Specified by:
registerImmutablein interfacePipelineClassCopierFactory
-
setSpecialClassCopierFactory
Set a special ClassCopierFactory to handle some application specific needs.- Specified by:
setSpecialClassCopierFactoryin interfacePipelineClassCopierFactory
-
getClassCopier
Analyze cls to determine the appropriate ClassCopier and return the ClassCopier instance. Will only create a ClassCopier for a given Class once.- Specified by:
getClassCopierin interfaceClassCopierFactory- Throws:
ReflectiveCopyException
-