org.omg.CORBA

## Class Request

- java.lang.Object
- - org.omg.CORBA.Request

    public abstract class Request
    extends Object

An object containing the information necessary for invoking a method. This class is the cornerstone of the ORB Dynamic Invocation Interface (DII), which allows dynamic creation and invocation of requests. A server cannot tell the difference between a client invocation using a client stub and a request using the DII.

A `Request` object consists of:

- the name of the operation to be invoked
- an `NVList` containing arguments for the operation.
  Each item in the list is a `NamedValue` object, which has three parts:
  1. the name of the argument
  2. the value of the argument (as an `Any` object)
  3. the argument mode flag indicating whether the argument is for input, output, or both

`Request` objects may also contain additional information, depending on how an operation was defined in the original IDL interface definition. For example, where appropriate, they may contain a `NamedValue` object to hold the return value or exception, a context, a list of possible exceptions, and a list of context strings that need to be resolved.

New `Request` objects are created using one of the `create_request` methods in the `Object` class. In other words, a `create_request` method is performed on the object which is to be invoked.

See Also:
  `NamedValue`

### Constructor Summary

Constructors
Constructor and Description
`Request()`

### Method Summary

Methods
`abstract Any` `add_in_arg()` Creates an input argument and adds it to this `Request` object.
`abstract Any` `add_inout_arg()` Adds an input/output argument to this `Request` object.
`abstract Any` `add_named_in_arg(String name)` Creates an input argument with the given name and adds it to this `Request` object.
`abstract Any` `add_named_inout_arg(String name)` Adds an input/output argument with the given name to this `Request` object.
`abstract Any` `add_named_out_arg(String name)` Adds an output argument with the given name to this `Request` object.
`abstract Any` `add_out_arg()` Adds an output argument to this `Request` object.
`abstract NVList` `arguments()` Retrieves the `NVList` object containing the arguments to the method being invoked.
`abstract ContextList` `contexts()` Retrieves the `ContextList` object for this request.
`abstract Context` `ctx()` Retrieves the `Context` object for this request.
`abstract void` `ctx(Context c)` Sets this request's `Context` object to the one given.
`abstract Environment` `env()` Retrieves the `Environment` object for this request.
`abstract ExceptionList` `exceptions()` Retrieves the `ExceptionList` object for this request.
`abstract void` `get_response()` Allows the user to access the response for the invocation triggered earlier with the `send_deferred` method.
`abstract void` `invoke()` Makes a synchronous invocation using the information in the `Request` object.
`abstract String` `operation()` Retrieves the name of the method to be invoked.
`abstract boolean` `poll_response()` Allows the user to determine whether a response has been received for the invocation triggered earlier with the `send_deferred` method.
`abstract NamedValue` `result()` Retrieves the `NamedValue` object containing the return value for the method.
`abstract Any` `return_value()` Returns the `Any` object that contains the value for the result of the method.
`abstract void` `send_deferred()` Makes an asynchronous invocation on the request.
`abstract void` `send_oneway()` Makes a oneway invocation on the request.
`abstract void` `set_return_type(TypeCode tc)` Sets the typecode for the return value of the method.
`abstract Object` `target()` Retrieves the the target object reference.

### Methods inherited from class java.lang.Object

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

### Constructor Detail

#### Request

    public Request()

### Method Detail

#### target

    public abstract Object target()

Retrieves the the target object reference.

Returns:
  the object reference that points to the object implementation for the method to be invoked

#### operation

    public abstract String operation()

Retrieves the name of the method to be invoked.

Returns:
  the name of the method to be invoked

#### arguments

    public abstract NVList arguments()

Retrieves the `NVList` object containing the arguments to the method being invoked. The elements in the list are `NamedValue` objects, with each one describing an argument to the method.

Returns:
  the `NVList` object containing the arguments for the method

#### result

    public abstract NamedValue result()

Retrieves the `NamedValue` object containing the return value for the method.

Returns:
  the `NamedValue` object containing the result of the method

#### env

    public abstract Environment env()

Retrieves the `Environment` object for this request. It contains the exception that the method being invoked has thrown (after the invocation returns).

Returns:
  the `Environment` object for this request

#### exceptions

    public abstract ExceptionList exceptions()

Retrieves the `ExceptionList` object for this request. This list contains `TypeCode` objects describing the exceptions that may be thrown by the method being invoked.

Returns:
  the `ExceptionList` object describing the exceptions that may be thrown by the method being invoked

#### contexts

    public abstract ContextList contexts()

Retrieves the `ContextList` object for this request. This list contains context `String`s that need to be resolved and sent with the invocation.

Returns:
  the list of context strings whose values need to be resolved and sent with the invocation.

#### ctx

    public abstract Context ctx()

Retrieves the `Context` object for this request. This is a list of properties giving information about the client, the environment, or the circumstances of this request.

Returns:
  the `Context` object that is to be used to resolve any context strings whose values need to be sent with the invocation

#### ctx

    public abstract void ctx(Context c)

Sets this request's `Context` object to the one given.

Parameters:
  `c` - the new `Context` object to be used for resolving context strings

#### add_in_arg

    public abstract Any add_in_arg()

Creates an input argument and adds it to this `Request` object.

Returns:
  an `Any` object that contains the value and typecode for the input argument added

#### add_named_in_arg

    public abstract Any add_named_in_arg(String name)

Creates an input argument with the given name and adds it to this `Request` object.

Parameters:
  `name` - the name of the argument being added
Returns:
  an `Any` object that contains the value and typecode for the input argument added

#### add_inout_arg

    public abstract Any add_inout_arg()

Adds an input/output argument to this `Request` object.

Returns:
  an `Any` object that contains the value and typecode for the input/output argument added

#### add_named_inout_arg

    public abstract Any add_named_inout_arg(String name)

Adds an input/output argument with the given name to this `Request` object.

Parameters:
  `name` - the name of the argument being added
Returns:
  an `Any` object that contains the value and typecode for the input/output argument added

#### add_out_arg

    public abstract Any add_out_arg()

Adds an output argument to this `Request` object.

Returns:
  an `Any` object that contains the value and typecode for the output argument added

#### add_named_out_arg

    public abstract Any add_named_out_arg(String name)

Adds an output argument with the given name to this `Request` object.

Parameters:
  `name` - the name of the argument being added
Returns:
  an `Any` object that contains the value and typecode for the output argument added

#### set_return_type

    public abstract void set_return_type(TypeCode tc)

Sets the typecode for the return value of the method.

Parameters:
  `tc` - the `TypeCode` object containing type information for the return value

#### return_value

    public abstract Any return_value()

Returns the `Any` object that contains the value for the result of the method.

Returns:
  an `Any` object containing the value and typecode for the return value

#### invoke

    public abstract void invoke()

Makes a synchronous invocation using the information in the `Request` object. Exception information is placed into the `Request` object's environment object.

#### send_oneway

    public abstract void send_oneway()

Makes a oneway invocation on the request. In other words, it does not expect or wait for a response. Note that this can be used even if the operation was not declared as oneway in the IDL declaration. No response or exception information is returned.

#### send_deferred

    public abstract void send_deferred()

Makes an asynchronous invocation on the request. In other words, it does not wait for a response before it returns to the user. The user can then later use the methods `poll_response` and `get_response` to get the result or exception information for the invocation.

#### poll_response

    public abstract boolean poll_response()

Allows the user to determine whether a response has been received for the invocation triggered earlier with the `send_deferred` method.

Returns:
  `true` if the method response has been received; `false` otherwise

#### get_response

    public abstract void get_response()
                               throws WrongTransaction

Allows the user to access the response for the invocation triggered earlier with the `send_deferred` method.

Throws:
  `WrongTransaction` - if the method `get_response` was invoked from a different transaction's scope than the one from which the request was originally sent. See the OMG Transaction Service specification for details.

Copyright © 1993, 2017, Oracle and/or its affiliates. All rights reserved.