org.omg.CORBA.portable

## Class ObjectImpl

- java.lang.Object
- - org.omg.CORBA.portable.ObjectImpl

- All Implemented Interfaces:
    Object
  Direct Known Subclasses:
    _BindingIteratorStub, _DynAnyFactoryStub, _DynAnyStub, _DynArrayStub, _DynEnumStub, _DynFixedStub, _DynSequenceStub, _DynStructStub, _DynUnionStub, _DynValueStub, _IDLTypeStub, _NamingContextExtStub, _NamingContextStub, _PolicyStub, _ServantActivatorStub, _ServantLocatorStub, DynamicImplementation, ObjectImpl

      public abstract class ObjectImpl
      extends Object
      implements Object

  The common base class for all stub classes; provides default implementations of the `org.omg.CORBA.Object` methods. All method implementations are forwarded to a `Delegate` object stored in the `ObjectImpl` instance. `ObjectImpl` allows for portable stubs because the `Delegate` can be implemented by a different vendor-specific ORB.

- - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `ObjectImpl()` |

  - ### Method Summary

    All Methods Instance Methods Abstract Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `Request` | `_create_request(Context ctx, String operation, NVList arg_list, NamedValue result)` | Creates a `Request` object that contains the given context, method, argument list, and container for the result.
    `Request` | `_create_request(Context ctx, String operation, NVList arg_list, NamedValue result, ExceptionList exceptions, ContextList contexts)` | Creates a `Request` object that contains the given context, method, argument list, container for the result, exceptions, and list of property names to be used in resolving the context strings.
    `Object` | `_duplicate()` | Returns a duplicate of this `ObjectImpl` object.
    `Delegate` | `_get_delegate()` | Retrieves the reference to the vendor-specific `Delegate` object to which this `ObjectImpl` object delegates all methods invoked on it.
    `DomainManager[]` | `_get_domain_managers()` | Retrieves a list of the domain managers for this `ObjectImpl` object.
    `Object` | `_get_interface_def()` | Retrieves the interface definition for this `ObjectImpl` object.
    `Policy` | `_get_policy(int policy_type)` | Retrieves the `Policy` object for this `ObjectImpl` object that has the given policy type.
    `int` | `_hash(int maximum)` | Retrieves the hash code that serves as an ORB-internal identifier for this `ObjectImpl` object.
    `abstract String[]` | `_ids()` | Retrieves a string array containing the repository identifiers supported by this `ObjectImpl` object.
    `InputStream` | `_invoke(OutputStream output)` | Invokes an operation and returns an `InputStream` object for reading the response.
    `boolean` | `_is_a(String repository_id)` | Checks whether the object identified by the given repository identifier is an `ObjectImpl` object.
    `boolean` | `_is_equivalent(Object that)` | Checks whether the the given `ObjectImpl` object is equivalent to this `ObjectImpl` object.
    `boolean` | `_is_local()` | Checks whether this `ObjectImpl` object is implemented by a local servant.
    `boolean` | `_non_existent()` | Checks whether the server object for this `ObjectImpl` object has been destroyed.
    `ORB` | `_orb()` | Returns a reference to the ORB associated with this object and its delegate.
    `void` | `_release()` | Releases the resources associated with this `ObjectImpl` object.
    `void` | `_releaseReply(InputStream input)` | Releases the given reply stream back to the ORB when unmarshalling has completed after a call to the method `_invoke`.
    `Request` | `_request(String operation)` | Creates a `Request` object containing the given method that can be used with the Dynamic Invocation Interface.
    `OutputStream` | `_request(String operation, boolean responseExpected)` | Returns an `OutputStream` object to use for marshalling the arguments of the given method.
    `void` | `_servant_postinvoke(ServantObject servant)` | Is called by the local stub after it has invoked an operation on the local servant that was previously retrieved from a call to the method `_servant_preinvoke`.
    `ServantObject` | `_servant_preinvoke(String operation, Class expectedType)` | Returns a Java reference to the local servant that should be used for sending a request for the method specified.
    `void` | `_set_delegate(Delegate delegate)` | Sets the Delegate for this `ObjectImpl` instance to the given `Delegate` object.
    `Object` | `_set_policy_override(Policy[] policies, SetOverrideType set_add)` | Sets this `ObjectImpl` object's override type for the given policies to the given instance of `SetOverrideType`.
    `boolean` | `equals(Object obj)` | Compares this `ObjectImpl` object with the given one for equality.
    `int` | `hashCode()` | Returns the hash code for this `ObjectImpl` object.
    `String` | `toString()` | Returns a `String` object that represents this `ObjectImpl` object.

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

      `clone, finalize, getClass, notify, notifyAll, wait, wait, wait`

- - ### Constructor Detail

    - #### ObjectImpl

          public ObjectImpl()

  - ### Method Detail

    - #### _get_delegate

          public Delegate _get_delegate()

      Retrieves the reference to the vendor-specific `Delegate` object to which this `ObjectImpl` object delegates all methods invoked on it.
      Returns:
        the Delegate contained in this ObjectImpl instance
      Throws:
        `BAD_OPERATION` - if the delegate has not been set
      See Also:
        `_set_delegate(org.omg.CORBA.portable.Delegate)`

    - #### _set_delegate

          public void _set_delegate(Delegate delegate)

      Sets the Delegate for this `ObjectImpl` instance to the given `Delegate` object. All method invocations on this `ObjectImpl` object will be forwarded to this delegate.
      Parameters:
        `delegate` - the `Delegate` instance to which all method calls on this `ObjectImpl` object will be delegated; may be implemented by a third-party ORB
      See Also:
        `_get_delegate()`

    - #### _ids

          public abstract String[] _ids()

      Retrieves a string array containing the repository identifiers supported by this `ObjectImpl` object. For example, for a stub, this method returns information about all the interfaces supported by the stub.
      Returns:
        the array of all repository identifiers supported by this `ObjectImpl` instance

    - #### _duplicate

          public Object _duplicate()

      Returns a duplicate of this `ObjectImpl` object.
      Specified by:
        `_duplicate` in interface `Object`
      Returns:
        an `orb.omg.CORBA.Object` object that is a duplicate of this object

    - #### _release

          public void _release()

      Releases the resources associated with this `ObjectImpl` object.
      Specified by:
        `_release` in interface `Object`

    - #### _is_a

          public boolean _is_a(String repository_id)

      Checks whether the object identified by the given repository identifier is an `ObjectImpl` object.
      Specified by:
        `_is_a` in interface `Object`
      Parameters:
        `repository_id` - a `String` object with the repository identifier to check
      Returns:
        `true` if the object identified by the given repository id is an instance of `ObjectImpl`; `false` otherwise

    - #### _is_equivalent

          public boolean _is_equivalent(Object that)

      Checks whether the the given `ObjectImpl` object is equivalent to this `ObjectImpl` object.
      Specified by:
        `_is_equivalent` in interface `Object`
      Parameters:
        `that` - an instance of `ObjectImpl` to compare with this `ObjectImpl` object
      Returns:
        `true` if the given object is equivalent to this `ObjectImpl` object; `false` otherwise

    - #### _non_existent

          public boolean _non_existent()

      Checks whether the server object for this `ObjectImpl` object has been destroyed.
      Specified by:
        `_non_existent` in interface `Object`
      Returns:
        `true` if the ORB knows authoritatively that the server object does not exist; `false` otherwise

    - #### _hash

          public int _hash(int maximum)

      Retrieves the hash code that serves as an ORB-internal identifier for this `ObjectImpl` object.
      Specified by:
        `_hash` in interface `Object`
      Parameters:
        `maximum` - an `int` indicating the upper bound on the hash value returned by the ORB
      Returns:
        an `int` representing the hash code for this `ObjectImpl` object

    - #### _request

          public Request _request(String operation)

      Creates a `Request` object containing the given method that can be used with the Dynamic Invocation Interface.
      Specified by:
        `_request` in interface `Object`
      Parameters:
        `operation` - the method to be invoked by the new `Request` object
      Returns:
        a new `Request` object initialized with the given method

    - #### _create_request

          public Request _create_request(Context ctx,
                                         String operation,
                                         NVList arg_list,
                                         NamedValue result)

      Creates a `Request` object that contains the given context, method, argument list, and container for the result.
      Specified by:
        `_create_request` in interface `Object`
      Parameters:
        `ctx` - the Context for the request
        `operation` - the method that the new `Request` object will invoke
        `arg_list` - the arguments for the method; an `NVList` in which each argument is a `NamedValue` object
        `result` - a `NamedValue` object to be used for returning the result of executing the request's method
      Returns:
        a new `Request` object initialized with the given context, method, argument list, and container for the return value
      See Also:
        `Request`, `NVList`, `NamedValue`

    - #### _create_request

          public Request _create_request(Context ctx,
                                         String operation,
                                         NVList arg_list,
                                         NamedValue result,
                                         ExceptionList exceptions,
                                         ContextList contexts)

      Creates a `Request` object that contains the given context, method, argument list, container for the result, exceptions, and list of property names to be used in resolving the context strings. This `Request` object is for use in the Dynamic Invocation Interface.
      Specified by:
        `_create_request` in interface `Object`
      Parameters:
        `ctx` - the `Context` object that contains the context strings that must be resolved before they are sent along with the request
        `operation` - the method that the new `Request` object will invoke
        `arg_list` - the arguments for the method; an `NVList` in which each argument is a `NamedValue` object
        `result` - a `NamedValue` object to be used for returning the result of executing the request's method
        `exceptions` - a list of the exceptions that the given method throws
        `contexts` - a list of the properties that are needed to resolve the contexts in ctx; the strings in contexts are used as arguments to the method `Context.get_values`, which returns the value associated with the given property
      Returns:
        a new `Request` object initialized with the given context strings to resolve, method, argument list, container for the result, exceptions, and list of property names to be used in resolving the context strings
      See Also:
        `Request`, `NVList`, `NamedValue`, `ExceptionList`, `ContextList`

    - #### _get_interface_def

          public Object _get_interface_def()

      Retrieves the interface definition for this `ObjectImpl` object.
      Specified by:
        `_get_interface_def` in interface `Object`
      Returns:
        the `org.omg.CORBA.Object` instance that is the interface definition for this `ObjectImpl` object

    - #### _orb

          public ORB _orb()

      Returns a reference to the ORB associated with this object and its delegate. This is the `ORB` object that created the delegate.
      Returns:
        the `ORB` instance that created the `Delegate` object contained in this `ObjectImpl` object

    - #### _get_policy

          public Policy _get_policy(int policy_type)

      Retrieves the `Policy` object for this `ObjectImpl` object that has the given policy type.
      Specified by:
        `_get_policy` in interface `Object`
      Parameters:
        `policy_type` - an int indicating the policy type
      Returns:
        the `Policy` object that is the specified policy type and that applies to this `ObjectImpl` object
      See Also:
        `PolicyOperations.policy_type()`

    - #### _get_domain_managers

          public DomainManager[] _get_domain_managers()

      Retrieves a list of the domain managers for this `ObjectImpl` object.
      Specified by:
        `_get_domain_managers` in interface `Object`
      Returns:
        an array containing the `DomainManager` objects for this instance of `ObjectImpl`

    - #### _set_policy_override

          public Object _set_policy_override(Policy[] policies,
                                             SetOverrideType set_add)

      Sets this `ObjectImpl` object's override type for the given policies to the given instance of `SetOverrideType`.
      Specified by:
        `_set_policy_override` in interface `Object`
      Parameters:
        `policies` - an array of `Policy` objects with the policies that will replace the current policies or be added to the current policies
        `set_add` - either `SetOverrideType.SET_OVERRIDE`, indicating that the given policies will replace any existing ones, or `SetOverrideType.ADD_OVERRIDE`, indicating that the given policies should be added to any existing ones
      Returns:
        an `Object` with the given policies replacing or added to its previous policies

    - #### _is_local

          public boolean _is_local()

      Checks whether this `ObjectImpl` object is implemented by a local servant. If so, local invocation API's may be used.
      Returns:
        `true` if this object is implemented by a local servant; `false` otherwise

    - #### _servant_preinvoke

          public ServantObject _servant_preinvoke(String operation,
                                                  Class expectedType)

      Returns a Java reference to the local servant that should be used for sending a request for the method specified. If this `ObjectImpl` object is a local stub, it will invoke the `_servant_preinvoke` method before sending a request in order to obtain the `ServantObject` instance to use.

      If a `ServantObject` object is returned, its `servant` field has been set to an object of the expected type (Note: the object may or may not be the actual servant instance). The local stub may cast the servant field to the expected type, and then invoke the operation directly. The `ServantRequest` object is valid for only one invocation and cannot be used for more than one invocation.

      Parameters:
        `operation` - a `String` containing the name of the method to be invoked. This name should correspond to the method name as it would be encoded in a GIOP request.
        `expectedType` - a `Class` object representing the expected type of the servant that is returned. This expected type is the `Class` object associated with the operations class for the stub's interface. For example, a stub for an interface `Foo` would pass the `Class` object for the `FooOperations` interface.
      Returns:
        (1) a `ServantObject` object, which may or may not be the actual servant instance, or (2) `null` if (a) the servant is not local or (b) the servant has ceased to be local due to a ForwardRequest from a POA ServantManager
      Throws:
        `BAD_PARAM` - if the servant is not the expected type

    - #### _servant_postinvoke

          public void _servant_postinvoke(ServantObject servant)

      Is called by the local stub after it has invoked an operation on the local servant that was previously retrieved from a call to the method `_servant_preinvoke`. The `_servant_postinvoke` method must be called if the `_servant_preinvoke` method returned a non-null value, even if an exception was thrown by the method invoked by the servant. For this reason, the call to the method `_servant_postinvoke` should be placed in a Java `finally` clause.
      Parameters:
        `servant` - the instance of the `ServantObject` returned by the `_servant_preinvoke` method

    - #### _request

          public OutputStream _request(String operation,
                                       boolean responseExpected)

      Returns an `OutputStream` object to use for marshalling the arguments of the given method. This method is called by a stub, which must indicate if a response is expected, that is, whether or not the call is oneway.
      Parameters:
        `operation` - a String giving the name of the method.
        `responseExpected` - a boolean -- `true` if the request is not one way, that is, a response is expected
      Returns:
        an `OutputStream` object for dispatching the request

    - #### _invoke

          public InputStream _invoke(OutputStream output)
                              throws ApplicationException,
                                     RemarshalException

      Invokes an operation and returns an `InputStream` object for reading the response. The stub provides the `OutputStream` object that was previously returned by a call to the `_request` method. The method specified as an argument to `_request` when it was called previously is the method that this method invokes.

      If an exception occurs, the `_invoke` method may throw an `ApplicationException` object that contains an InputStream from which the user exception state may be unmarshalled.

      Parameters:
        `output` - an OutputStream object for dispatching the request
      Returns:
        an `InputStream` object containing the marshalled response to the method invoked
      Throws:
        `ApplicationException` - if the invocation meets application-defined exception
        `RemarshalException` - if the invocation leads to a remarshalling error
      See Also:
        `_request(java.lang.String)`

    - #### _releaseReply

          public void _releaseReply(InputStream input)

      Releases the given reply stream back to the ORB when unmarshalling has completed after a call to the method `_invoke`. Calling this method is optional for the stub.
      Parameters:
        `input` - the `InputStream` object that was returned by the `_invoke` method or the `ApplicationException.getInputStream` method; may be `null`, in which case this method does nothing
      See Also:
        `_invoke(org.omg.CORBA.portable.OutputStream)`

    - #### toString

          public String toString()

      Returns a `String` object that represents this `ObjectImpl` object.
      Overrides:
        `toString` in class `Object`
      Returns:
        the `String` representation of this object

    - #### hashCode

          public int hashCode()

      Returns the hash code for this `ObjectImpl` object.
      Overrides:
        `hashCode` in class `Object`
      Returns:
        the hash code for this object
      See Also:
        `Object.equals(java.lang.Object)`, `System.identityHashCode(java.lang.Object)`

    - #### equals

          public boolean equals(Object obj)

      Compares this `ObjectImpl` object with the given one for equality.
      Overrides:
        `equals` in class `Object`
      Parameters:
        `obj` - the object with which to compare this object
      Returns:
        `true` if the two objects are equal; `false` otherwise
      See Also:
        `Object.hashCode()`, `HashMap`

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, 2026, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Also see the documentation redistribution policy.