org.omg.PortableInterceptor

## Interface ServerRequestInfoOperations

- All Superinterfaces:
    RequestInfoOperations
  All Known Subinterfaces:
    ServerRequestInfo

      public interface ServerRequestInfoOperations
      extends RequestInfoOperations

  Request Information, accessible to server-side request interceptors.

  Some attributes and operations on `ServerRequestInfo` are not valid at all interception points. The following table shows the validity of each attribute or operation. If it is not valid, attempting to access it will result in a `BAD_INV_ORDER` being thrown with a standard minor code of 14.

  | receive_request_ service_contexts | receive_request | send_reply | send_exception | send_other
  --- | --- | --- | --- | --- | ---
  Inherited from RequestInfo:
  request_id | yes | yes | yes | yes | yes
  operation | yes | yes | yes | yes | yes
  arguments | no | yes1 | yes | no2 | no2
  exceptions | no | yes | yes | yes | yes
  contexts | no | yes | yes | yes | yes
  operation_context | no | yes | yes | no | no
  result | no | no | yes | no | no
  response_expected | yes | yes | yes | yes | yes
  sync_scope | yes | yes | yes | yes | yes
  request_id | yes | yes | yes | yes | yes
  operation | yes | yes | yes | yes | yes
  arguments | no | yes1 | yes | no2 | no2
  exceptions | no | yes | yes | yes | yes
  contexts | no | yes | yes | yes | yes
  operation_context | no | yes | yes | no | no
  result | no | no | yes | no | no
  response_expected | yes | yes | yes | yes | yes
  sync_scope | yes | yes | yes | yes | yes
  reply_status | no | no | yes | yes | yes
  forward_reference | no | no | no | no | yes2
  get_slot | yes | yes | yes | yes | yes
  get_request_service_context | yes | no | yes | yes | yes
  get_reply_service_context | no | no | yes | yes | yes
  ServerRequestInfo-specific:
  sending_exception | no | no | no | yes | no
  object_id | no | yes | yes | yes3 | yes3
  adapter_id | no | yes | yes | yes3 | yes3
  server_id | no | yes | yes | yes | yes
  orb_id | no | yes | yes | yes | yes
  adapter_name | no | yes | yes | yes | yes
  target_most_derived_interface | no | yes | no4 | no4 | no4
  get_server_policy | yes | yes | yes | yes | yes
  set_slot | yes | yes | yes | yes | yes
  target_is_a | no | yes | no4 | no4 | no4
  add_reply_service_context | yes | yes | yes | yes | yes

  1. When `ServerRequestInfo` is passed to `receive_request`, there is an entry in the list for every argument, whether in, inout, or out. But only the in and inout arguments will be available.
  2. If the `reply_status` attribute is not `LOCATION_FORWARD`, accessing this attribute will throw `BAD_INV_ORDER` with a standard minor code of 14.
  3. If the servant locator caused a location forward, or thrown an exception, this attribute/operation may not be available in this interception point. `NO_RESOURCES` with a standard minor code of 1 will be thrown if it is not available.
  4. The operation is not available in this interception point because the necessary information requires access to the target object's servant, which may no longer be available to the ORB. For example, if the object's adapter is a POA that uses a `ServantLocator`, then the ORB invokes the interception point after it calls `ServantLocator.postinvoke()`
  .
  See Also:
    `ServerRequestInterceptor`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `byte[]` | `adapter_id()` Returns the opaque identifier for the object adapter.
    `String[]` | `adapter_name()` Returns the sequence of strings that identifies the object adapter instance that is handling this request.
    `void` | `add_reply_service_context(ServiceContext service_context, boolean replace)` Allows Interceptors to add service contexts to the request.
    `Policy` | `get_server_policy(int type)` Returns the policy in effect for this operation for the given policy type.
    `byte[]` | `object_id()` Returns the opaque `object_id` describing the target of the operation invocation.
    `String` | `orb_id()` Returns the ID that was used to create the ORB.
    `Any` | `sending_exception()` Returns an any which contains the exception to be returned to the client.
    `String` | `server_id()` Returns the server ID that was specified on ORB::init using the -ORBServerId argument.
    `void` | `set_slot(int id, Any data)` Allows an Interceptor to set a slot in the `PortableInterceptor.Current` that is in the scope of the request.
    `boolean` | `target_is_a(String id)` Returns true if the servant is the given repository id, false if it is not.
    `String` | `target_most_derived_interface()` Returns the repository id for the most derived interface of the servant.

    - ### Methods inherited from interface org.omg.PortableInterceptor.RequestInfoOperations

      `arguments, contexts, exceptions, forward_reference, get_reply_service_context, get_request_service_context, get_slot, operation_context, operation, reply_status, request_id, response_expected, result, sync_scope`

- - ### Method Detail

    - #### sending_exception

          Any sending_exception()

      Returns an any which contains the exception to be returned to the client.

      If the exception is a user exception which cannot be inserted into an any (e.g., it is unknown or the bindings don't provide the `TypeCode`), then this attribute will be an any containing the system exception `UNKNOWN` with a standard minor code of 1.

      See Also:
        `PortableInterceptor` package comments for limitations / unimplemented features

    - #### object_id

          byte[] object_id()

      Returns the opaque `object_id` describing the target of the operation invocation.

    - #### adapter_id

          byte[] adapter_id()

      Returns the opaque identifier for the object adapter.

    - #### server_id

          String server_id()

      Returns the server ID that was specified on ORB::init using the -ORBServerId argument.

    - #### orb_id

          String orb_id()

      Returns the ID that was used to create the ORB.

    - #### adapter_name

          String[] adapter_name()

      Returns the sequence of strings that identifies the object adapter instance that is handling this request.

    - #### target_most_derived_interface

          String target_most_derived_interface()

      Returns the repository id for the most derived interface of the servant.

    - #### get_server_policy

          Policy get_server_policy(int type)

      Returns the policy in effect for this operation for the given policy type. The returned `CORBA.Policy` object shall only be a policy whose type was registered via `register_policy_factory`.
      Parameters:
        `type` - The `CORBA.PolicyType` which specifies the policy to be returned.
      Returns:
        The `CORBA.Policy` obtained with the given policy type.
      Throws:
        `INV_POLICY` - thrown, with a standard minor code of 2, if a policy for the given type was not registered via `register_policy_factory`.
      See Also:
        `ORBInitInfoOperations.register_policy_factory(int, org.omg.PortableInterceptor.PolicyFactory)`

    - #### set_slot

          void set_slot(int id,
                        Any data)
                 throws InvalidSlot

      Allows an Interceptor to set a slot in the `PortableInterceptor.Current` that is in the scope of the request. If data already exists in that slot, it will be overwritten.
      Parameters:
        `id` - The id of the slot.
        `data` - The data, in the form of an any, to store in that slot.
      Throws:
        `InvalidSlot` - thrown if the ID does not define an allocated slot.
      See Also:
        `Current`

    - #### target_is_a

          boolean target_is_a(String id)

      Returns true if the servant is the given repository id, false if it is not.
      Parameters:
        `id` - The caller wants to know if the servant is this repository id.
      Returns:
        Is the servant the given RepositoryId?

    - #### add_reply_service_context

          void add_reply_service_context(ServiceContext service_context,
                                         boolean replace)

      Allows Interceptors to add service contexts to the request.

      There is no declaration of the order of the service contexts. They may or may not appear in the order that they are added.

      Parameters:
        `service_context` - The `IOP.ServiceContext` to add to the reply.
        `replace` - Indicates the behavior of this operation when a service context already exists with the given ID. If false, then `BAD_INV_ORDER` with a standard minor code of 15 is thrown. If true, then the existing service context is replaced by the new one.
      Throws:
        `BAD_INV_ORDER` - thrown, with a standard minor code of 15, if replace is false and a service context already exists with the given ID.

Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2015, Oracle and/or its affiliates. All rights reserved.