Class ReflectObjectCopierImpl

  • All Implemented Interfaces:
    org.glassfish.pfl.dynamic.copyobject.spi.ObjectCopier

    public class ReflectObjectCopierImpl
    extends java.lang.Object
    implements org.glassfish.pfl.dynamic.copyobject.spi.ObjectCopier
    Class used to deep copy arbitrary data. A single ReflectObjectCopierImpl instance will preserve all object aliasing across multiple calls to copy.
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private static org.glassfish.pfl.dynamic.copyobject.impl.PipelineClassCopierFactory ccf  
      private static org.glassfish.pfl.dynamic.copyobject.impl.ClassCopier corbaClassCopier  
      private static org.glassfish.pfl.dynamic.copyobject.impl.ClassCopier identityClassCopier  
      (package private) static java.lang.ThreadLocal localORB  
      private java.util.Map oldToNew  
      private static org.glassfish.pfl.dynamic.copyobject.impl.ClassCopier remoteClassCopier  
      private static org.glassfish.pfl.dynamic.copyobject.impl.ClassCopierFactory specialClassCopierFactory  
      private static ORBUtilSystemException wrapper  
    • Constructor Summary

      Constructors 
      Constructor Description
      ReflectObjectCopierImpl​(ORB orb)
      Create an ReflectObjectCopierImpl for the given ORB.
    • Method Summary

      All Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      java.lang.Object copy​(java.lang.Object obj)
      Return a deep copy of obj.
      java.lang.Object copy​(java.lang.Object obj, boolean debug)  
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • localORB

        static final java.lang.ThreadLocal localORB
      • remoteClassCopier

        private static org.glassfish.pfl.dynamic.copyobject.impl.ClassCopier remoteClassCopier
      • identityClassCopier

        private static org.glassfish.pfl.dynamic.copyobject.impl.ClassCopier identityClassCopier
      • corbaClassCopier

        private static org.glassfish.pfl.dynamic.copyobject.impl.ClassCopier corbaClassCopier
      • specialClassCopierFactory

        private static final org.glassfish.pfl.dynamic.copyobject.impl.ClassCopierFactory specialClassCopierFactory
      • ccf

        private static final org.glassfish.pfl.dynamic.copyobject.impl.PipelineClassCopierFactory ccf
      • oldToNew

        private final java.util.Map oldToNew
    • Constructor Detail

      • ReflectObjectCopierImpl

        public ReflectObjectCopierImpl​(ORB orb)
        Create an ReflectObjectCopierImpl for the given ORB. The orb is used for connection Remote instances.
        Parameters:
        orb - ORB to use for remote instances
    • Method Detail

      • copy

        public java.lang.Object copy​(java.lang.Object obj)
                              throws org.glassfish.pfl.dynamic.copyobject.spi.ReflectiveCopyException
        Return a deep copy of obj. Aliasing is preserved within obj and between objects passed in multiple calls to the same instance of ReflectObjectCopierImpl.
        Specified by:
        copy in interface org.glassfish.pfl.dynamic.copyobject.spi.ObjectCopier
        Throws:
        org.glassfish.pfl.dynamic.copyobject.spi.ReflectiveCopyException
      • copy

        public java.lang.Object copy​(java.lang.Object obj,
                                     boolean debug)
                              throws org.glassfish.pfl.dynamic.copyobject.spi.ReflectiveCopyException
        Throws:
        org.glassfish.pfl.dynamic.copyobject.spi.ReflectiveCopyException