Java™ Platform
Standard Ed. 6

org.omg.CORBA.portable
Class ObjectImpl

java.lang.Object
  extended by 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
ObjectImpl()
           
 
Method Summary
 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), Hashtable

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(), Hashtable

Java™ Platform
Standard Ed. 6

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

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