Servant (Java SE 10 & JDK 10 )
Keywords: org.omg.PortableServer.Servant class

Module java.corba
Package org.omg.PortableServer

## Class Servant

- java.lang.Object
- - org.omg.PortableServer.Servant

- Direct Known Subclasses:
    `BindingIteratorPOA`, `DynamicImplementation`, `NamingContextExtPOA`, `NamingContextPOA`, `ServantActivatorPOA`, `ServantLocatorPOA`

      public abstract class Servant
      extends Object

  Defines the native `Servant` type. In Java, the `Servant` type is mapped to the Java `org.omg.PortableServer.Servant` class. It serves as the base class for all POA servant implementations and provides a number of methods that may be invoked by the application programmer, as well as methods which are invoked by the POA itself and may be overridden by the user to control aspects of servant behavior. Based on IDL to Java spec. (CORBA V2.3.1) ptc/00-01-08.pdf.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `Servant()` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `abstract String[]` | `_all_interfaces​(POA poa, byte[] objectId)` | Used by the ORB to obtain complete type information from the servant.
    `POA` | `_default_POA()` | Returns the root POA from the ORB instance associated with the servant.
    `Delegate` | `_get_delegate()` | Gets the ORB vendor-specific implementation of `PortableServer::Servant`.
    `Object` | `_get_interface_def()` | Returns an `InterfaceDef` object as a `CORBA::Object` that defines the runtime type of the `CORBA::Object` implemented by the `Servant`.
    `boolean` | `_is_a​(String repository_id)` | Checks to see if the specified `repository_id` is present on the list returned by `_all_interfaces()` or is the `repository_id` for the generic CORBA Object.
    `boolean` | `_non_existent()` | Checks for the existence of an `Object`.
    `byte[]` | `_object_id()` | Allows easy execution of common methods, equivalent to calling `PortableServer::Current::get_object_id`.
    `ORB` | `_orb()` | Returns the instance of the ORB currently associated with the `Servant` (convenience method).
    `POA` | `_poa()` | Allows easy execution of common methods, equivalent to `PortableServer::Current:get_POA`.
    `void` | `_set_delegate​(Delegate delegate)` | Supports the Java ORB portability interfaces by providing a method for classes that support ORB portability through delegation to set their delegate.
    `Object` | `_this_object()` | Allows the servant to obtain the object reference for the target CORBA object it is incarnating for that request.
    `Object` | `_this_object​(ORB orb)` | Allows the servant to obtain the object reference for the target CORBA Object it is incarnating for that request.

    - ### Methods declared in class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### Servant

          public Servant()

  - ### Method Detail

    - #### _get_delegate

          public final Delegate _get_delegate()

      Gets the ORB vendor-specific implementation of `PortableServer::Servant`.
      Returns:
        `_delegate` the ORB vendor-specific implementation of `PortableServer::Servant`.

    - #### _set_delegate

          public final void _set_delegate​(Delegate delegate)

      Supports the Java ORB portability interfaces by providing a method for classes that support ORB portability through delegation to set their delegate.
      Parameters:
        `delegate` - ORB vendor-specific implementation of the `PortableServer::Servant`.

    - #### _this_object

          public final Object _this_object()

      Allows the servant to obtain the object reference for the target CORBA object it is incarnating for that request.
      Returns:
        `this_object` `Object` reference associated with the request.

    - #### _this_object

          public final Object _this_object​(ORB orb)

      Allows the servant to obtain the object reference for the target CORBA Object it is incarnating for that request.
      Parameters:
        `orb` - ORB with which the servant is associated.
      Returns:
        `_this_object` reference associated with the request.

    - #### _orb

          public final ORB _orb()

      Returns the instance of the ORB currently associated with the `Servant` (convenience method).
      Returns:
        `orb` the instance of the ORB currently associated with the `Servant`.

    - #### _poa

          public final POA _poa()

      Allows easy execution of common methods, equivalent to `PortableServer::Current:get_POA`.
      Returns:
        `poa` POA associated with the servant.

    - #### _object_id

          public final byte[] _object_id()

      Allows easy execution of common methods, equivalent to calling `PortableServer::Current::get_object_id`.
      Returns:
        `object_id` the `Object` ID associated with this servant.

    - #### _default_POA

          public POA _default_POA()

      Returns the root POA from the ORB instance associated with the servant. Subclasses may override this method to return a different POA.
      Returns:
        `default_POA` the POA associated with the `Servant`.

    - #### _is_a

          public boolean _is_a​(String repository_id)

      Checks to see if the specified `repository_id` is present on the list returned by `_all_interfaces()` or is the `repository_id` for the generic CORBA Object.
      Parameters:
        `repository_id` - the `repository_id` to be checked in the repository list or against the id of generic CORBA objects.
      Returns:
        `is_a` boolean indicating whether the specified `repository_id` is in the repository list or is same as a generic CORBA object.

    - #### _non_existent

          public boolean _non_existent()

      Checks for the existence of an `Object`. The `Servant` provides a default implementation of `_non_existent()` that can be overridden by derived servants.
      Returns:
        `non_existent` `true` if that object does not exist, `false` otherwise.

    - #### _get_interface_def

          public Object _get_interface_def()

      Returns an `InterfaceDef` object as a `CORBA::Object` that defines the runtime type of the `CORBA::Object` implemented by the `Servant`. The invoker of `_get_interface_def` must narrow the result to an `InterfaceDef` in order to use it.

      This default implementation of `_get_interface_def()` can be overridden by derived servants if the default behavior is not adequate. As defined in the CORBA 2.3.1 specification, section 11.3.1, the default behavior of `_get_interface_def()` is to use the most derived interface of a static servant or the most derived interface retrieved from a dynamic servant to obtain the `InterfaceDef`. This behavior must be supported by the `Delegate` that implements the `Servant`.

      Returns:
        `get_interface_def` an `InterfaceDef` object as a `CORBA::Object` that defines the runtime type of the `CORBA::Object` implemented by the `Servant`.

    - #### _all_interfaces

          public abstract String[] _all_interfaces​(POA poa,
                                                   byte[] objectId)

      Used by the ORB to obtain complete type information from the servant.
      Parameters:
        `poa` - POA with which the servant is associated.
        `objectId` - is the id corresponding to the object associated with this servant.
      Returns:
        list of type information for the object.