org.omg.PortableInterceptor

## Interface ClientRequestInfoOperations

- All Superinterfaces:
    RequestInfoOperations
  All Known Subinterfaces:
    ClientRequestInfo

      public interface ClientRequestInfoOperations
      extends RequestInfoOperations

  Request Information, accessible to client-side request interceptors.

  Some attributes and operations on `ClientRequestInfo` 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.

  | send_request | send_poll | receive_reply | receive_exception | receive_other
  --- | --- | --- | --- | --- | ---
  Inherited from RequestInfo:
  request_id | yes | yes | yes | yes | yes
  operation | yes | yes | yes | yes | yes
  arguments | yes1 | no | yes | no | no
  exceptions | yes | no | yes | yes | yes
  contexts | yes | no | yes | yes | yes
  operation_context | yes | no | yes | yes | yes
  result | no | no | yes | no | no
  response_expected | yes | yes | yes | yes | yes
  sync_scope | yes | no | 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
  ClientRequestInfo-specific:
  target | yes | yes | yes | yes | yes
  effective_target | yes | yes | yes | yes | yes
  effective_profile | yes | yes | yes | yes | yes
  received_exception | no | no | no | yes | no
  received_exception_id | no | no | no | yes | no
  get_effective_component | yes | no | yes | yes | yes
  get_effective_components | yes | no | yes | yes | yes
  get_request_policy | yes | no | yes | yes | yes
  add_request_service_context | yes | no | no | no | no

  1. When `ClientRequestInfo` is passed to `send_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` atribute is not `LOCATION_FORWARD`, accessing this attribute will throw `BAD_INV_ORDER` with a standard minor code of 14.
  See Also:
    `ClientRequestInterceptor`

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `add_request_service_context(ServiceContext service_context, boolean replace)` Allows Interceptors to add service contexts to the request.
    `TaggedProfile` | `effective_profile()` Returns the profile that will be used to send the request.
    `Object` | `effective_target()` Returns the actual object on which the operation will be invoked.
    `TaggedComponent` | `get_effective_component(int id)` Returns the `IOP.TaggedComponent` with the given ID from the profile selected for this request.
    `TaggedComponent[]` | `get_effective_components(int id)` Returns an array of all tagged components with the given ID from the profile selected for this request.
    `Policy` | `get_request_policy(int type)` Returns the given policy in effect for this operation.
    `String` | `received_exception_id()` Returns the repository id of the exception to be returned to the client.
    `Any` | `received_exception()` Returns an any which contains the exception to be returned to the client.
    `Object` | `target()` Returns the object which the client called to perform the operation.

    - ### 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

    - #### target

          Object target()

      Returns the object which the client called to perform the operation.
      See Also:
        `effective_target()`

    - #### effective_target

          Object effective_target()

      Returns the actual object on which the operation will be invoked. If the `reply_status` is `LOCATION_FORWARD`, then on subsequent requests, `effective_target` will contain the forwarded IOR while target will remain unchanged.
      See Also:
        `target()`

    - #### effective_profile

          TaggedProfile effective_profile()

      Returns the profile that will be used to send the request. If a location forward has occurred for this operation's object and that object's profile changed accordingly, then this profile will be that located profile.

    - #### received_exception

          Any received_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. However, the repository id of the exception is available in the `received_exception_id` attribute.

      See Also:
        `received_exception_id()`

    - #### received_exception_id

          String received_exception_id()

      Returns the repository id of the exception to be returned to the client.
      See Also:
        `received_exception()`, `PortableInterceptor` package comments for limitations / unimplemented features

    - #### get_effective_component

          TaggedComponent get_effective_component(int id)

      Returns the `IOP.TaggedComponent` with the given ID from the profile selected for this request.

      If there is more than one component for a given component ID, it is undefined which component this operation returns. If there is more than one component for a given component ID, `get_effective_components` should be called instead.

      Parameters:
        `id` - The component id of the component which is to be returned.
      Returns:
        The `IOP.TaggedComponent` obtained with the given identifier.
      Throws:
        `BAD_PARAM` - thrown, with a standard minor code of 28, if no component exists for the given component ID.
      See Also:
        `get_effective_components(int)`

    - #### get_effective_components

          TaggedComponent[] get_effective_components(int id)

      Returns an array of all tagged components with the given ID from the profile selected for this request.
      Parameters:
        `id` - The component id of the components which are to be returned.
      Returns:
        An array of `TaggedComponent` objects, each of which contains the given identifier.
      Throws:
        `BAD_PARAM` - thrown, with a standard minor code of 28, if no component exists for the given component ID.
      See Also:
        `get_effective_component(int)`

    - #### get_request_policy

          Policy get_request_policy(int type)

      Returns the given policy in effect for this operation.
      Parameters:
        `type` - The policy type which specifies the policy to be returned.
      Returns:
        The `CORBA.Policy` obtained with the given type.
      Throws:
        `INV_POLICY` - thrown, with a standard minor code of 1, if the policy type is not valid either because the specified type is not supported by this ORB or because a policy object of that type is not associated with this Object
      See Also:
        `PortableInterceptor` package comments for limitations / unimplemented features

    - #### add_request_service_context

          void add_request_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 be added to the request.
        `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.

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.