/**
  * Called whenever an ORB instance is created. This registers the transport endpoints and the ORB
  * proxy callback object. Note that we cannot detect when an ORB shuts down, although all of the
  * POA shutdowns should still be reported.
  */
 public void registerORB(
     String serverId,
     String orbId,
     com.sun.corba.se.PortableActivationIDL.ORBProxy orb,
     com.sun.corba.se.PortableActivationIDL.EndPointInfo[] endPointInfo)
     throws com.sun.corba.se.PortableActivationIDL.ServerNotRegistered,
         com.sun.corba.se.PortableActivationIDL.NoSuchEndPoint,
         com.sun.corba.se.PortableActivationIDL.ORBAlreadyRegistered {
   org.omg.CORBA.portable.InputStream $in = null;
   try {
     org.omg.CORBA.portable.OutputStream $out = _request("registerORB", true);
     org.omg.PortableInterceptor.ServerIdHelper.write($out, serverId);
     org.omg.PortableInterceptor.ORBIdHelper.write($out, orbId);
     com.sun.corba.se.PortableActivationIDL.ORBProxyHelper.write($out, orb);
     com.sun.corba.se.PortableActivationIDL.EndpointInfoListHelper.write($out, endPointInfo);
     $in = _invoke($out);
     return;
   } catch (org.omg.CORBA.portable.ApplicationException $ex) {
     $in = $ex.getInputStream();
     String _id = $ex.getId();
     if (_id.equals("IDL:PortableActivationIDL/ServerNotRegistered:1.0"))
       throw com.sun.corba.se.PortableActivationIDL.ServerNotRegisteredHelper.read($in);
     else if (_id.equals("IDL:PortableActivationIDL/NoSuchEndPoint:1.0"))
       throw com.sun.corba.se.PortableActivationIDL.NoSuchEndPointHelper.read($in);
     else if (_id.equals("IDL:PortableActivationIDL/ORBAlreadyRegistered:1.0"))
       throw com.sun.corba.se.PortableActivationIDL.ORBAlreadyRegisteredHelper.read($in);
     else throw new org.omg.CORBA.MARSHAL(_id);
   } catch (org.omg.CORBA.portable.RemarshalException $rm) {
     registerORB(serverId, orbId, orb, endPointInfo);
   } finally {
     _releaseReply($in);
   }
 } // registerORB
  public org.omg.CORBA.portable.OutputStream _invoke(
      String $method,
      org.omg.CORBA.portable.InputStream in,
      org.omg.CORBA.portable.ResponseHandler $rh) {
    org.omg.CORBA.portable.OutputStream out = null;
    java.lang.Integer __method = (java.lang.Integer) _methods.get($method);
    if (__method == null)
      throw new org.omg.CORBA.BAD_OPERATION(0, org.omg.CORBA.CompletionStatus.COMPLETED_MAYBE);

    switch (__method.intValue()) {

        /** A new ORB started server registers itself with the Activator */
      case 0: // PortableActivationIDL/Activator/registerServer
        {
          try {
            String serverId = org.omg.PortableInterceptor.ServerIdHelper.read(in);
            com.sun.corba.se.PortableActivationIDL.ServerProxy serverObj =
                com.sun.corba.se.PortableActivationIDL.ServerProxyHelper.read(in);
            this.registerServer(serverId, serverObj);
            out = $rh.createReply();
          } catch (com.sun.corba.se.PortableActivationIDL.ServerNotRegistered $ex) {
            out = $rh.createExceptionReply();
            com.sun.corba.se.PortableActivationIDL.ServerNotRegisteredHelper.write(out, $ex);
          }
          break;
        }

        /**
         * A server is shutting down that was started by this activator. Complete termination of the
         * server is detected by the death of the process implementing the server.
         */
      case 1: // PortableActivationIDL/Activator/serverGoingDown
        {
          String serverId = org.omg.PortableInterceptor.ServerIdHelper.read(in);
          this.serverGoingDown(serverId);
          out = $rh.createReply();
          break;
        }

        /**
         * Called whenever an ORB instance is created. This registers the transport endpoints and
         * the ORB proxy callback object. Note that we cannot detect when an ORB shuts down,
         * although all of the POA shutdowns should still be reported.
         */
      case 2: // PortableActivationIDL/Activator/registerORB
        {
          try {
            String serverId = org.omg.PortableInterceptor.ServerIdHelper.read(in);
            String orbId = org.omg.PortableInterceptor.ORBIdHelper.read(in);
            com.sun.corba.se.PortableActivationIDL.ORBProxy orb =
                com.sun.corba.se.PortableActivationIDL.ORBProxyHelper.read(in);
            com.sun.corba.se.PortableActivationIDL.EndPointInfo endPointInfo[] =
                com.sun.corba.se.PortableActivationIDL.EndpointInfoListHelper.read(in);
            this.registerORB(serverId, orbId, orb, endPointInfo);
            out = $rh.createReply();
          } catch (com.sun.corba.se.PortableActivationIDL.ServerNotRegistered $ex) {
            out = $rh.createExceptionReply();
            com.sun.corba.se.PortableActivationIDL.ServerNotRegisteredHelper.write(out, $ex);
          } catch (com.sun.corba.se.PortableActivationIDL.NoSuchEndPoint $ex) {
            out = $rh.createExceptionReply();
            com.sun.corba.se.PortableActivationIDL.NoSuchEndPointHelper.write(out, $ex);
          } catch (com.sun.corba.se.PortableActivationIDL.ORBAlreadyRegistered $ex) {
            out = $rh.createExceptionReply();
            com.sun.corba.se.PortableActivationIDL.ORBAlreadyRegisteredHelper.write(out, $ex);
          }
          break;
        }

        /**
         * Construct or find an ORBD object template corresponding to the server's object template
         * and return it. Called whenever a persistent POA is created.
         */
      case 3: // PortableActivationIDL/Activator/registerPOA
        {
          String serverId = org.omg.PortableInterceptor.ServerIdHelper.read(in);
          String orbId = org.omg.PortableInterceptor.ORBIdHelper.read(in);
          org.omg.PortableInterceptor.ObjectReferenceTemplate poaTemplate =
              org.omg.PortableInterceptor.ObjectReferenceTemplateHelper.read(in);
          org.omg.PortableInterceptor.ObjectReferenceTemplate $result = null;
          $result = this.registerPOA(serverId, orbId, poaTemplate);
          out = $rh.createReply();
          org.omg.PortableInterceptor.ObjectReferenceTemplateHelper.write(out, $result);
          break;
        }

        /** Called whenever a POA is destroyed. */
      case 4: // PortableActivationIDL/Activator/poaDestroyed
        {
          String serverId = org.omg.PortableInterceptor.ServerIdHelper.read(in);
          String orbId = org.omg.PortableInterceptor.ORBIdHelper.read(in);
          org.omg.PortableInterceptor.ObjectReferenceTemplate poaTemplate =
              org.omg.PortableInterceptor.ObjectReferenceTemplateHelper.read(in);
          this.poaDestroyed(serverId, orbId, poaTemplate);
          out = $rh.createReply();
          break;
        }

        /**
         * If the server is not running, start it up. This is allowed whether or not the server has
         * been installed.
         */
      case 5: // PortableActivationIDL/Activator/activate
        {
          try {
            String serverId = org.omg.PortableInterceptor.ServerIdHelper.read(in);
            this.activate(serverId);
            out = $rh.createReply();
          } catch (com.sun.corba.se.PortableActivationIDL.ServerAlreadyActive $ex) {
            out = $rh.createExceptionReply();
            com.sun.corba.se.PortableActivationIDL.ServerAlreadyActiveHelper.write(out, $ex);
          } catch (com.sun.corba.se.PortableActivationIDL.ServerNotRegistered $ex) {
            out = $rh.createExceptionReply();
            com.sun.corba.se.PortableActivationIDL.ServerNotRegisteredHelper.write(out, $ex);
          } catch (com.sun.corba.se.PortableActivationIDL.ServerHeldDown $ex) {
            out = $rh.createExceptionReply();
            com.sun.corba.se.PortableActivationIDL.ServerHeldDownHelper.write(out, $ex);
          }
          break;
        }

        /** If the server is running, shut it down */
      case 6: // PortableActivationIDL/Activator/shutdown
        {
          try {
            String serverId = org.omg.PortableInterceptor.ServerIdHelper.read(in);
            this.shutdown(serverId);
            out = $rh.createReply();
          } catch (com.sun.corba.se.PortableActivationIDL.ServerNotActive $ex) {
            out = $rh.createExceptionReply();
            com.sun.corba.se.PortableActivationIDL.ServerNotActiveHelper.write(out, $ex);
          } catch (com.sun.corba.se.PortableActivationIDL.ServerNotRegistered $ex) {
            out = $rh.createExceptionReply();
            com.sun.corba.se.PortableActivationIDL.ServerNotRegisteredHelper.write(out, $ex);
          }
          break;
        }

        /**
         * Invoke the server install hook. If the server is not currently running, this method will
         * activate it.
         */
      case 7: // PortableActivationIDL/Activator/install
        {
          try {
            String serverId = org.omg.PortableInterceptor.ServerIdHelper.read(in);
            this.install(serverId);
            out = $rh.createReply();
          } catch (com.sun.corba.se.PortableActivationIDL.ServerNotRegistered $ex) {
            out = $rh.createExceptionReply();
            com.sun.corba.se.PortableActivationIDL.ServerNotRegisteredHelper.write(out, $ex);
          } catch (com.sun.corba.se.PortableActivationIDL.ServerHeldDown $ex) {
            out = $rh.createExceptionReply();
            com.sun.corba.se.PortableActivationIDL.ServerHeldDownHelper.write(out, $ex);
          } catch (com.sun.corba.se.PortableActivationIDL.ServerAlreadyInstalled $ex) {
            out = $rh.createExceptionReply();
            com.sun.corba.se.PortableActivationIDL.ServerAlreadyInstalledHelper.write(out, $ex);
          }
          break;
        }

        /**
         * Invoke the server uninstall hook. If the server is not currently running, this method
         * will activate it. After this hook completes, the server may still be running.
         */
      case 8: // PortableActivationIDL/Activator/uninstall
        {
          try {
            String serverId = org.omg.PortableInterceptor.ServerIdHelper.read(in);
            this.uninstall(serverId);
            out = $rh.createReply();
          } catch (com.sun.corba.se.PortableActivationIDL.ServerNotRegistered $ex) {
            out = $rh.createExceptionReply();
            com.sun.corba.se.PortableActivationIDL.ServerNotRegisteredHelper.write(out, $ex);
          } catch (com.sun.corba.se.PortableActivationIDL.ServerHeldDown $ex) {
            out = $rh.createExceptionReply();
            com.sun.corba.se.PortableActivationIDL.ServerHeldDownHelper.write(out, $ex);
          } catch (com.sun.corba.se.PortableActivationIDL.ServerAlreadyUninstalled $ex) {
            out = $rh.createExceptionReply();
            com.sun.corba.se.PortableActivationIDL.ServerAlreadyUninstalledHelper.write(out, $ex);
          }
          break;
        }

        /** list active servers */
      case 9: // PortableActivationIDL/Activator/getActiveServers
        {
          String $result[] = null;
          $result = this.getActiveServers();
          out = $rh.createReply();
          com.sun.corba.se.PortableActivationIDL.ServerIdsHelper.write(out, $result);
          break;
        }

        /** list all registered ORBs for a server */
      case 10: // PortableActivationIDL/Activator/getORBNames
        {
          try {
            String serverId = org.omg.PortableInterceptor.ServerIdHelper.read(in);
            String $result[] = null;
            $result = this.getORBNames(serverId);
            out = $rh.createReply();
            com.sun.corba.se.PortableActivationIDL.ORBidListHelper.write(out, $result);
          } catch (com.sun.corba.se.PortableActivationIDL.ServerNotRegistered $ex) {
            out = $rh.createExceptionReply();
            com.sun.corba.se.PortableActivationIDL.ServerNotRegisteredHelper.write(out, $ex);
          }
          break;
        }

        /** Find the server template that corresponds to the ORBD's adapter id. */
      case 11: // PortableActivationIDL/Activator/lookupPOATemplate
        {
          String serverId = org.omg.PortableInterceptor.ServerIdHelper.read(in);
          String orbId = org.omg.PortableInterceptor.ORBIdHelper.read(in);
          String orbAdapterName[] = org.omg.PortableInterceptor.AdapterNameHelper.read(in);
          org.omg.PortableInterceptor.ObjectReferenceTemplate $result = null;
          $result = this.lookupPOATemplate(serverId, orbId, orbAdapterName);
          out = $rh.createReply();
          org.omg.PortableInterceptor.ObjectReferenceTemplateHelper.write(out, $result);
          break;
        }

      default:
        throw new org.omg.CORBA.BAD_OPERATION(0, org.omg.CORBA.CompletionStatus.COMPLETED_MAYBE);
    }

    return out;
  } // _invoke