delegateimpl.java
来自「java jdk 1.4的源码」· Java 代码 · 共 136 行
JAVA
136 行
/* * @(#)DelegateImpl.java 1.8 03/01/23 * * Copyright 2003 Sun Microsystems, Inc. All rights reserved. * SUN PROPRIETARY/CONFIDENTIAL. Use is subject to license terms. */package com.sun.corba.se.internal.POA;import org.omg.PortableServer.*;public class DelegateImpl implements org.omg.PortableServer.portable.Delegate{ private POAORB _orb; public DelegateImpl(POAORB orb){ _orb = orb; } /* org.omg.PortableServer.portable.Delegate methods. */ //============================================================================== //============================================================================== public org.omg.CORBA.ORB orb(Servant self){ return _orb; } public org.omg.CORBA.Object this_object(Servant self){ //REVISIT Temporary implementation byte[] oid; POAImpl poa; try{ oid = _orb.poaCurrent.get_object_id(); poa = (POAImpl)_orb.poaCurrent.get_POA(); return poa.createReference(self._all_interfaces(poa,oid)[0],oid); } catch (org.omg.PortableServer.CurrentPackage.NoContext notInInvocationE) { //Not within an invocation context POAImpl defaultPOA = null; try{ defaultPOA = (POAImpl)self._default_POA(); } catch (ClassCastException exception){ throw new org.omg.CORBA.OBJ_ADAPTER( "Servant's _default_POA must be an instance of POAImpl."); } try{ if ( defaultPOA.getPolicies().isImplicitlyActivated() ) return defaultPOA.servant_to_reference(self); else if ( defaultPOA.getPolicies().isUniqueIds() && defaultPOA.getPolicies().retainServants()) return defaultPOA.servant_to_reference(self); else throw new org.omg.CORBA.OBJ_ADAPTER( "Don't have the right POA policies for _this_object " + "called from outside of an invocation thread."); } catch ( org.omg.PortableServer.POAPackage.ServantNotActive e) { throw new org.omg.CORBA.OBJ_ADAPTER( "ServantNotActive: servant_to_reference failed."); } catch ( org.omg.PortableServer.POAPackage.WrongPolicy e) { throw new org.omg.CORBA.OBJ_ADAPTER( "WrongPolicy: servant_to_reference failed."); } } catch (ClassCastException e) { throw new org.omg.CORBA.OBJ_ADAPTER( "Servant's _default_POA must be an instance of POAImpl."); } } public POA poa(Servant self){ try{ return _orb.poaCurrent.get_POA(); } catch (org.omg.PortableServer.CurrentPackage.NoContext exception){ if (ShutdownUtilDelegate.instance != null) { POA returnValue = ShutdownUtilDelegate.instance.lookupPOA(self); if (returnValue != null) { return returnValue; } } throw new org.omg.CORBA.OBJ_ADAPTER( "NoContext: outside of an invocation context."); } } public byte[] object_id(Servant self){ try{ return _orb.poaCurrent.get_object_id(); } catch (org.omg.PortableServer.CurrentPackage.NoContext exception){ throw new org.omg.CORBA.OBJ_ADAPTER( "NoContext: outside of an invocation context."); } } public POA default_POA(Servant self){ return _orb.getRootPOA(); } public boolean is_a(Servant self, String repId){ String[] repositoryIds = self._all_interfaces(poa(self),object_id(self)); for ( int i=0; i<repositoryIds.length; i++ ) if ( repId.equals(repositoryIds[i]) ) return true; return false; } public boolean non_existent(Servant self){ //REVISIT try{ byte[] oid = _orb.poaCurrent.get_object_id(); if( oid == null) return true; else return false; } catch (org.omg.PortableServer.CurrentPackage.NoContext exception){ throw new org.omg.CORBA.OBJ_ADAPTER( "NoContext: outside of an invocation context."); } } //REVISIT //Simon And Ken Will Ask About Editorial Changes //In Idl To Java For The Following Signature. /* public org.omg.CORBA.Object get_interface(Servant Self){ //Not currently implemented. throw new org.omg.CORBA.NO_IMPLEMENT("This method is not implemented."); } */ // The get_interface() method has been replaced by get_interface_def() public org.omg.CORBA.Object get_interface_def(Servant Self){ //Not currently implemented. throw new org.omg.CORBA.NO_IMPLEMENT("This method is not implemented."); }}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?