00001
00002
00003
00004
00005 package org.objectweb.jeremie.libs.services.registry.jndi;
00006
00007 import org.objectweb.jonathan.apis.kernel.JonathanException;
00008 import org.objectweb.jonathan.apis.presentation.Marshaller;
00009 import org.objectweb.jonathan.apis.presentation.UnMarshaller;
00010 import org.objectweb.jonathan.apis.protocols.ReplySession;
00011 import org.objectweb.jeremie.libs.stub_factories.std.OptSkeleton;
00012
00016 public class JRMIReferenceImpl_Skel
00017 extends OptSkeleton {
00018
00019
00020 public JRMIReferenceImpl_Skel() {
00021 super();
00022 }
00023
00024 public JRMIReferenceImpl_Skel(Object target) {
00025 super(target);
00026 }
00027
00028 public void send(UnMarshaller unmarshaller, ReplySession session)
00029 throws JonathanException {
00030 try {
00031 int method_index = unmarshaller.readInt();
00032 switch (method_index) {
00033 case 0 :
00034 {
00035 unmarshaller.close();
00036 org.objectweb.jeremie.libs.services.registry.jndi.JRMIRemoteReference obj =
00037 (org.objectweb.jeremie.libs.services.registry.jndi.JRMIRemoteReference) target;
00038 javax.naming.Reference result =
00039 obj.getReference();
00040 Marshaller marshaller = session.prepareReply();
00041 marshaller.writeValue(result);
00042 session.send(marshaller);
00043 session.close();
00044 return;
00045 }
00046 }
00047 } catch (Exception e) {
00048 Exception ex = null;
00049 if (e instanceof JonathanException) {
00050 ex = new java.rmi.MarshalException
00051 ("error during marshalling/unmarshalling by skeleton", e);
00052 } else {
00053 ex = e;
00054 }
00055 try {
00056 Marshaller marshaller = session.prepareExceptionReply();
00057 marshaller.writeValue(ex);
00058 session.send(marshaller);
00059 } catch (Exception f) {
00060 throw new JonathanException
00061 ("error during marshalling of exception by skeleton");
00062 }
00063 session.close();
00064 }
00065 }
00066 }