Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.4.2
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

## org.omg.IOP
Class IORHolder

    java.lang.Object
      org.omg.IOP.IORHolder

All Implemented Interfaces:
  Streamable

public final class IORHolder
extends Object
implements Streamable

Captures information about a object references, such as whether the object is null, what type it is, what protocols are supported, and what ORB services are available.

This data structure need not be used internally to any given ORB, and is not intended to be visible to application-level ORB programmers. It should be used only when crossing object reference domain boundaries, within bridges.

This data structure is designed to be efficient in typical single-protocol configurations, while not penalizing multiprotocol ones.

Object references have at least one tagged profile. Each profile supports one or more protocols and encapsulates all the basic information the protocols it supports need to identify an object. Any single profile holds enough information to drive a complete invocation using any of the protocols it supports; the content and structure of those profile entries are wholly specified by these protocols. A bridge between two domains may need to know the detailed content of the profile for those domains' profiles, depending on the technique it uses to bridge the domains.

Each profile has a unique numeric tag, assigned by the OMG. Profile tags in the range 0x80000000 through 0xffffffff are reserved for future use, and are not currently available for assignment.

Null object references are indicated by an empty set of profiles, and by a "Null" type ID (a string which contains only a single terminating character). A Null `TypeID` is the only mechanism that can be used to represent the type `CORBA.Object`. Type IDs may only be "Null" in any message, requiring the client to use existing knowledge or to consult the object, to determine interface types supported. The type ID is a Repository ID identifying the interface type, and is provided to allow ORBs to preserve strong typing. This identifier is agreed on within the bridge and, for reasons outside the scope of the interoperability specification, needs to have a much broader scope to address various problems in system evolution and maintenance. Type IDs support detection of type equivalence, and in conjunction with an Interface Repository, allow processes to reason about the relationship of the type of the object referred to and any other type.

The type ID, if provided by the server, indicates the most derived type that the server wishes to publish, at the time the reference is generated. The object's actual most derived type may later change to a more derived type. Therefore, the type ID in the IOR can only be interpreted by the client as a hint that the object supports at least the indicated interface. The client can succeed in narrowing the reference to the indicated interface, or to one of its base interfaces, based solely on the type ID in the IOR, but must not fail to narrow the reference without consulting the object via the "_is_a" or "_get_interface" pseudo-operations.

Field Summary
`IOR` | `value`

Constructor Summary
`IORHolder()`
`IORHolder(IOR initialValue)`

Method Summary
`void` | `_read(InputStream i)` Reads data from `istream` and initalizes the `value` field of the Holder with the unmarshalled data.
`TypeCode` | `_type()` Retrieves the `TypeCode` object corresponding to the value in the `value` field of the Holder.
`void` | `_write(OutputStream o)` Marshals to `ostream` the value in the `value` field of the Holder.

Methods inherited from class java.lang.Object
`clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

Field Detail

### value

    public IOR value

Constructor Detail

### IORHolder

    public IORHolder()

### IORHolder

    public IORHolder(IOR initialValue)

Method Detail

### _read

    public void _read(InputStream i)

  Description copied from interface: `Streamable`
  Reads data from `istream` and initalizes the `value` field of the Holder with the unmarshalled data.

  Specified by:
    `_read` in interface `Streamable`
  Parameters:
    `i` - the InputStream that represents the CDR data from the wire.

### _write

    public void _write(OutputStream o)

  Description copied from interface: `Streamable`
  Marshals to `ostream` the value in the `value` field of the Holder.

  Specified by:
    `_write` in interface `Streamable`
  Parameters:
    `o` - the CDR OutputStream

### _type

    public TypeCode _type()

  Description copied from interface: `Streamable`
  Retrieves the `TypeCode` object corresponding to the value in the `value` field of the Holder.

  Specified by:
    `_type` in interface `Streamable`
  Returns:
    the `TypeCode` object for the value held in the holder

Overview | Package | Class | Use | Tree | Deprecated | Index | Help
| JavaTM 2 Platform Std. Ed. v1.4.2
PREV CLASS NEXT CLASS | FRAMES NO FRAMES
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD

Submit a bug or feature
For further API reference and developer documentation, see Java 2 SDK SE Developer Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.

Copyright 2003 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.