/* * @(#)JIDLLocalCRDImpl.java 1.15 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.protocol; import javax.rmi.CORBA.Tie; import org.omg.CORBA.portable.ServantObject; import com.sun.corba.se.spi.orb.ORB ; import com.sun.corba.se.spi.protocol.LocalClientRequestDispatcherFactory ; import com.sun.corba.se.spi.protocol.LocalClientRequestDispatcher ; import com.sun.corba.se.spi.ior.IOR ; import com.sun.corba.se.impl.protocol.LocalClientRequestDispatcherBase ; import com.sun.corba.se.pept.broker.Broker; public class JIDLLocalCRDImpl extends LocalClientRequestDispatcherBase { public JIDLLocalCRDImpl( ORB orb, int scid, IOR ior ) { super( (com.sun.corba.se.spi.orb.ORB)orb, scid, ior ) ; } protected ServantObject servant; public ServantObject servant_preinvoke(org.omg.CORBA.Object self, String operation, Class expectedType) { if (!checkForCompatibleServant( servant, expectedType )) return null ; return servant; } public void servant_postinvoke( org.omg.CORBA.Object self, ServantObject servant ) { // NO-OP } // REVISIT - This is called from TOAImpl. public void setServant( java.lang.Object servant ) { if (servant != null && servant instanceof Tie) { this.servant = new ServantObject(); this.servant.servant = ((Tie)servant).getTarget(); } else { this.servant = null; } } public void unexport() { // DO NOT set the IOR to null. (Un)exporting is only concerns // the servant not the IOR. If the ior is set to null then // null pointer exceptions happen during an colocated invocation. // It is better to let the invocation proceed and get OBJECT_NOT_EXIST // from the server side. //ior = null; servant = null; } } // End of file.