blob: 908ba63d45426ed4c1a83cd5fe0010ab5032c40d [file] [log] [blame]
/**
*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.yoko.rmi.impl;
public class StubImpl implements javax.rmi.CORBA.StubDelegate {
public StubImpl() {
}
public int hashCode(javax.rmi.CORBA.Stub stub) {
return stub._get_delegate().hashCode(stub);
}
public boolean equals(javax.rmi.CORBA.Stub stub, java.lang.Object obj) {
if (obj instanceof org.omg.CORBA.Object) {
return stub._is_equivalent((org.omg.CORBA.Object) obj);
} else {
return false;
}
}
public java.lang.String toString(javax.rmi.CORBA.Stub stub) {
return stub._get_delegate().toString(stub);
}
public void connect(javax.rmi.CORBA.Stub stub, org.omg.CORBA.ORB orb)
throws java.rmi.RemoteException {
try {
org.omg.CORBA.portable.Delegate delegate;
try {
delegate = stub._get_delegate();
} catch (org.omg.CORBA.BAD_OPERATION ex) {
throw new java.rmi.RemoteException("stub has no identity", ex);
}
if (delegate.orb(stub) != orb) {
org.omg.CORBA.portable.OutputStream out = orb
.create_output_stream();
out.write_Object(stub);
org.omg.CORBA.portable.InputStream in = out
.create_input_stream();
org.omg.CORBA.portable.ObjectImpl impl = (org.omg.CORBA.portable.ObjectImpl) in
.read_Object();
stub._set_delegate(impl._get_delegate());
}
} catch (org.omg.CORBA.SystemException ex) {
throw javax.rmi.CORBA.Util.mapSystemException(ex);
}
}
public void readObject(javax.rmi.CORBA.Stub stub,
java.io.ObjectInputStream ois) throws java.io.IOException,
java.lang.ClassNotFoundException {
org.omg.CORBA.portable.InputStream in = null;
if (ois instanceof CorbaObjectReader) {
in = ((CorbaObjectReader) ois).in;
} else {
IOR ior = new IOR();
ior.read(ois);
org.omg.CORBA.portable.OutputStream out = RMIState.current()
.getORB().create_output_stream();
ior.write(out);
in = out.create_input_stream();
}
org.omg.CORBA.portable.ObjectImpl impl = (org.omg.CORBA.portable.ObjectImpl) in
.read_Object();
stub._set_delegate(impl._get_delegate());
}
public void writeObject(javax.rmi.CORBA.Stub stub,
java.io.ObjectOutputStream oos) throws java.io.IOException {
if (oos instanceof CorbaObjectWriter) {
((CorbaObjectWriter) oos).out.write_Object(stub);
} else {
org.omg.CORBA.portable.OutputStream out = RMIState.current()
.getORB().create_output_stream();
out.write_Object(stub);
org.omg.CORBA.portable.InputStream in = out.create_input_stream();
IOR ior = new IOR();
ior.read(in);
ior.write(oos);
}
}
}