1 28 29 package com.caucho.ejb.burlap; 30 31 import com.caucho.ejb.AbstractEJBObject; 32 import com.caucho.ejb.AbstractServer; 33 import com.caucho.hessian.io.AbstractHessianOutput; 34 import com.caucho.hessian.io.AbstractSerializer; 35 import com.caucho.hessian.io.HessianRemoteObject; 36 37 import java.io.IOException ; 38 39 public class BurlapEJBObjectSerializer extends AbstractSerializer { 40 private static final BurlapEJBObjectSerializer SINGLETON = 41 new BurlapEJBObjectSerializer(); 42 43 static BurlapEJBObjectSerializer create() 44 { 45 return SINGLETON; 46 } 47 48 public void writeObject(Object obj, AbstractHessianOutput out) 49 throws IOException 50 { 51 if (obj instanceof AbstractEJBObject) { 52 AbstractEJBObject ejbObject = (AbstractEJBObject) obj; 53 AbstractServer server = ejbObject.__caucho_getServer(); 54 55 out.writeRemote(server.getRemoteObjectClass().getName(), 56 server.getHandleEncoder("burlap").getURL(ejbObject.__caucho_getId())); 57 } 58 else if (obj instanceof HessianRemoteObject) { 60 HessianRemoteObject ejbObject = (HessianRemoteObject) obj; 61 62 out.writeRemote(ejbObject.getHessianType(), 63 ejbObject.getHessianURL()); 64 } 65 else 66 throw new IllegalArgumentException (String.valueOf(obj)); 67 } 68 } 69 | Popular Tags |