FileDocCategorySizeDatePackage
ServantLocatorHelper.javaAPI DocJava SE 5 API3671Fri Aug 26 17:25:04 BST 2005org.omg.PortableServer

ServantLocatorHelper

public abstract class ServantLocatorHelper extends Object
When the POA has the NON_RETAIN policy it uses servant managers that are ServantLocators. Because the POA knows that the servant returned by this servant manager will be used only for a single request, it can supply extra information to the servant manager's operations and the servant manager's pair of operations may be able to cooperate to do something different than a ServantActivator. When the POA uses the ServantLocator interface, immediately after performing the operation invocation on the servant returned by preinvoke, the POA will invoke postinvoke on the servant manager, passing the ObjectId value and the Servant value as parameters (among others). This feature may be used to force every request for objects associated with a POA to be mediated by the servant manager.

Fields Summary
private static String
_id
private static org.omg.CORBA.TypeCode
__typeCode
Constructors Summary
Methods Summary
public static org.omg.PortableServer.ServantLocatorextract(org.omg.CORBA.Any a)

    return read (a.create_input_stream ());
  
public static java.lang.Stringid()

    return _id;
  
public static voidinsert(org.omg.CORBA.Any a, org.omg.PortableServer.ServantLocator that)


         
  
    org.omg.CORBA.portable.OutputStream out = a.create_output_stream ();
    a.type (type ());
    write (out, that);
    a.read_value (out.create_input_stream (), type ());
  
public static org.omg.PortableServer.ServantLocatornarrow(org.omg.CORBA.Object obj)

    if (obj == null)
      return null;
    else if (obj instanceof org.omg.PortableServer.ServantLocator)
      return (org.omg.PortableServer.ServantLocator)obj;
    else if (!obj._is_a (id ()))
      throw new org.omg.CORBA.BAD_PARAM ();
    else
    {
      org.omg.CORBA.portable.Delegate delegate = ((org.omg.CORBA.portable.ObjectImpl)obj)._get_delegate ();
      org.omg.PortableServer._ServantLocatorStub stub = new org.omg.PortableServer._ServantLocatorStub ();
      stub._set_delegate(delegate);
      return stub;
    }
  
public static org.omg.PortableServer.ServantLocatorread(org.omg.CORBA.portable.InputStream istream)

      throw new org.omg.CORBA.MARSHAL ();
  
public static synchronized org.omg.CORBA.TypeCodetype()

       
  
    if (__typeCode == null)
    {
      __typeCode = org.omg.CORBA.ORB.init ().create_interface_tc (org.omg.PortableServer.ServantLocatorHelper.id (), "ServantLocator");
    }
    return __typeCode;
  
public static org.omg.PortableServer.ServantLocatorunchecked_narrow(org.omg.CORBA.Object obj)

    if (obj == null)
      return null;
    else if (obj instanceof org.omg.PortableServer.ServantLocator)
      return (org.omg.PortableServer.ServantLocator)obj;
    else
    {
      org.omg.CORBA.portable.Delegate delegate = ((org.omg.CORBA.portable.ObjectImpl)obj)._get_delegate ();
      org.omg.PortableServer._ServantLocatorStub stub = new org.omg.PortableServer._ServantLocatorStub ();
      stub._set_delegate(delegate);
      return stub;
    }
  
public static voidwrite(org.omg.CORBA.portable.OutputStream ostream, org.omg.PortableServer.ServantLocator value)

      throw new org.omg.CORBA.MARSHAL ();