- /*
- * @(#)ORBStreamObjectCopierImpl.java 1.8 03/12/19
- *
- * Copyright 2004 Sun Microsystems, Inc. All rights reserved.
- * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms.
- */
-
- package com.sun.corba.se.impl.copyobject ;
-
- import java.util.logging.Level;
- import java.util.logging.Logger;
-
- import java.io.Serializable;
- import java.rmi.Remote;
- import java.rmi.MarshalException;
-
- import org.omg.CORBA_2_3.portable.InputStream;
- import org.omg.CORBA_2_3.portable.OutputStream;
- import org.omg.CORBA.ORB ;
-
- import com.sun.corba.se.spi.copyobject.ObjectCopier ;
- import com.sun.corba.se.impl.util.Utility;
-
- public class ORBStreamObjectCopierImpl implements ObjectCopier {
-
- public ORBStreamObjectCopierImpl( ORB orb )
- {
- this.orb = orb ;
- }
-
- public Object copy(Object obj) {
- if (obj instanceof Remote) {
- // Yes, so make sure it is connected and converted
- // to a stub (if needed)...
- return Utility.autoConnect(obj,orb,true);
- }
-
- OutputStream out = (OutputStream)orb.create_output_stream();
- out.write_value((Serializable)obj);
- InputStream in = (InputStream)out.create_input_stream();
- return in.read_value();
- }
-
- private ORB orb;
- }