Module java.corba
Package org.omg.CORBA

## Class ObjectHolder

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

- All Implemented Interfaces:
    `Streamable`

      public final class ObjectHolder
      extends Object
      implements Streamable

  The Holder for `Object`. For more information on Holder files, see "Generated Files: Holder Files".

  A Holder class for a CORBA object reference (a value of type `org.omg.CORBA.Object`). It is usually used to store "out" and "inout" parameters in IDL methods. If an IDL method signature has a CORBA Object reference as an "out" or "inout" parameter, the programmer must pass an instance of `ObjectHolder` as the corresponding parameter in the method invocation; for "inout" parameters, the programmer must also fill the "in" value to be sent to the server. Before the method invocation returns, the ORB will fill in the value corresponding to the "out" value returned from the server.

  If `myObjectHolder` is an instance of `ObjectHolder`, the value stored in its `value` field can be accessed with `myObjectHolder.value`.

  Since:
    JDK1.2

- - ### Field Summary

    Fields
    Modifier and Type | Field | Description
    --- | --- | ---
    `Object` | `value` | The `Object` value held by this `ObjectHolder` object.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ObjectHolder​()` | Constructs a new `ObjectHolder` object with its `value` field initialized to `null`.
    `ObjectHolder​(Object initial)` | Constructs a new `ObjectHolder` object with its `value` field initialized to the given `Object`.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `_read​(InputStream input)` | Reads from `input` and initalizes the value in this `ObjectHolder` object with the unmarshalled data.
    `TypeCode` | `_type​()` | Returns the TypeCode corresponding to the value held in this `ObjectHolder` object
    `void` | `_write​(OutputStream output)` | Marshals to `output` the value in this `ObjectHolder` object.

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

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

- - ### Field Detail

    - #### value

          public Object value

      The `Object` value held by this `ObjectHolder` object.

  - ### Constructor Detail

    - #### ObjectHolder

          public ObjectHolder​()

      Constructs a new `ObjectHolder` object with its `value` field initialized to `null`.

    - #### ObjectHolder

          public ObjectHolder​(Object initial)

      Constructs a new `ObjectHolder` object with its `value` field initialized to the given `Object`.
      Parameters:
        `initial` - the `Object` with which to initialize the `value` field of the newly-created `ObjectHolder` object

  - ### Method Detail

    - #### _read

          public void _read​(InputStream input)

      Reads from `input` and initalizes the value in this `ObjectHolder` object with the unmarshalled data.
      Specified by:
        `_read` in interface `Streamable`
      Parameters:
        `input` - the InputStream containing CDR formatted data from the wire.

    - #### _write

          public void _write​(OutputStream output)

      Marshals to `output` the value in this `ObjectHolder` object.
      Specified by:
        `_write` in interface `Streamable`
      Parameters:
        `output` - the OutputStream which will contain the CDR formatted data.

    - #### _type

          public TypeCode _type​()

      Returns the TypeCode corresponding to the value held in this `ObjectHolder` object
      Specified by:
        `_type` in interface `Streamable`
      Returns:
        the TypeCode of the value held in this `ObjectHolder` object