org.omg.CORBA
Class LocalObject

java.lang.Object
  extended by org.omg.CORBA.LocalObject
All Implemented Interfaces:
Object

public class LocalObject
extends Object
implements Object

An object, formally implementing the CORBA Object, but actually handling all invocations locally. Various calls to the remote object specific methods throw the NO_IMPLEMENT. The explaining message for this exception is specified in java API as "This is a locally constrained object.". It is not possible to get a stringified reference of the local object, or invoke a method using DII (by name via Request class). However narrowing and widening methods will work with local objects.

Since:
1.4

Constructor Summary
LocalObject()
           
 
Method Summary
 Request _create_request(Context context, String operation, NVList parameters, NamedValue returns)
          This method is not appropriate for the local objects and just throws an exception.
 Request _create_request(Context context, String operation, NVList parameters, NamedValue returns, ExceptionList exceptions, ContextList ctx_list)
          This method is not appropriate for the local objects and just throws an exception.
 Object _duplicate()
          This method is not appropriate for the local objects and just throws an exception.
 DomainManager[] _get_domain_managers()
          This method is not appropriate for the local objects and just throws an exception.
 Object _get_interface_def()
          This method is not appropriate for the local objects and just throws an exception.
 Object _get_interface()
          This method is not appropriate for the local objects and just throws an exception.
 Policy _get_policy(int a_policy_type)
          This method is not appropriate for the local objects and just throws an exception.
 int _hash(int maximum)
          Get the hashcode this object reference.
 InputStream _invoke(OutputStream output)
          Invokes the operation.
 boolean _is_a(String repositoryIdentifer)
          This method is not appropriate for the local objects and just throws an exception.
 boolean _is_equivalent(Object other)
          Determines if the object is equal to another object, so far as it is possible to determine easily.
 boolean _is_local()
          While it may look that this should return true, the jdk 1.5 API states that it must throw NO_IMPLEMENT instead.
 boolean _non_existent()
          Always returs false.
 ORB _orb()
          This method is not appropriate for the local objects and just throws an exception.
 void _release()
          This method is not appropriate for the local objects and just throws an exception.
 void _releaseReply(InputStream input)
          This method is not appropriate for the local objects and just throws an exception.
 Request _request(String operation)
          This method is not appropriate for the local objects and just throws an exception.
 OutputStream _request(String operation, boolean responseExpected)
          This method is not appropriate for the local objects and just throws an exception.
 void _servant_postinvoke(ServantObject servant)
          This method is called from rmic generated stubs if the Util.isLocal(javax.rmi.CORBA.Stub), called passing this as parameter, returns true, and the _servant_preinvoke(java.lang.String, java.lang.Class) return non-null object.
 ServantObject _servant_preinvoke(String operation, Class expectedType)
          This method is called from rmic generated stubs if the Util.isLocal(javax.rmi.CORBA.Stub), called passing this as parameter, returns true.
 Object _set_policy_override(Policy[] policies, SetOverrideType how)
          This method is not appropriate for the local objects and just throws an exception.
 boolean validate_connection()
          This method is not appropriate for the local objects and just throws an exception.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

LocalObject

public LocalObject()
Method Detail

_create_request

public Request _create_request(Context context,
                               String operation,
                               NVList parameters,
                               NamedValue returns)
This method is not appropriate for the local objects and just throws an exception.

Specified by:
_create_request in interface Object
Parameters:
context - a list of additional properties.
operation - the name of method to be invoked.
parameters - the method parameters.
returns - the container for tge method returned value.
Returns:
the created reaquest.
Throws:
NO_IMPLEMENT, - always.

_create_request

public Request _create_request(Context context,
                               String operation,
                               NVList parameters,
                               NamedValue returns,
                               ExceptionList exceptions,
                               ContextList ctx_list)
This method is not appropriate for the local objects and just throws an exception.

Specified by:
_create_request in interface Object
Parameters:
context - a list of additional properties.
operation - the name of method to be invoked.
parameters - the method parameters.
returns - the container for tge method returned value.
exceptions - the list of the possible exceptions that the method can throw.
ctx_list - the list of the context strings that need to be resolved and send as a context instance.
Returns:
the created reaquest.
Throws:
NO_IMPLEMENT, - always.

_duplicate

public Object _duplicate()
This method is not appropriate for the local objects and just throws an exception.

Specified by:
_duplicate in interface Object
Returns:
as a rule, this.
Throws:
NO_IMPLEMENT, - always.

_get_domain_managers

public DomainManager[] _get_domain_managers()
This method is not appropriate for the local objects and just throws an exception.

Specified by:
_get_domain_managers in interface Object
Returns:
the domain managers.
Throws:
NO_IMPLEMENT, - always.

_get_interface_def

public Object _get_interface_def()
This method is not appropriate for the local objects and just throws an exception.

Specified by:
_get_interface_def in interface Object
Throws:
NO_IMPLEMENT, - always.

_get_interface

public Object _get_interface()
This method is not appropriate for the local objects and just throws an exception.

Throws:
NO_IMPLEMENT, - always.

_get_policy

public Policy _get_policy(int a_policy_type)
                   throws BAD_PARAM
This method is not appropriate for the local objects and just throws an exception.

Specified by:
_get_policy in interface Object
Parameters:
a_policy_type - a type of policy to be obtained.
Returns:
a corresponding Policy object.
Throws:
NO_IMPLEMENT, - always.
BAD_PARAM - if the policy of the given type is not associated with this object, or if it is not supported by this ORB.

_hash

public int _hash(int maximum)
Get the hashcode this object reference. The same hashcode still does not means that the references are the same. From the other side, two different references may still refer to the same CORBA object. The returned value must not change during the object lifetime.

Specified by:
_hash in interface Object
Parameters:
maximum - the maximal value to return.
Returns:
the hashcode.

_is_a

public boolean _is_a(String repositoryIdentifer)
This method is not appropriate for the local objects and just throws an exception.

Specified by:
_is_a in interface Object
Parameters:
repositoryIdentifer - the repository id.
Returns:
true if the passed parameter is a repository id of this CORBA object.
Throws:
NO_IMPLEMENT, - always.

_is_equivalent

public boolean _is_equivalent(Object other)
Determines if the object is equal to another object, so far as it is possible to determine easily.

Specified by:
_is_equivalent in interface Object
Parameters:
other - the other object.
Returns:
true if the pased object is not null and java.lang.Object.equals(other) returns true. False otherwise.

_non_existent

public boolean _non_existent()
Always returs false.

Specified by:
_non_existent in interface Object
Returns:
false, always.

_release

public void _release()
This method is not appropriate for the local objects and just throws an exception.

Specified by:
_release in interface Object
Throws:
NO_IMPLEMENT, - always.

_request

public Request _request(String operation)
This method is not appropriate for the local objects and just throws an exception.

Specified by:
_request in interface Object
Parameters:
operation - the name of the method to invoke.
Returns:
the request.
Throws:
NO_IMPLEMENT, - always.

_set_policy_override

public Object _set_policy_override(Policy[] policies,
                                   SetOverrideType how)
This method is not appropriate for the local objects and just throws an exception.

Specified by:
_set_policy_override in interface Object
Parameters:
policies - the policy additions or replacements.
how - either SetOverrideType.SET_OVERRIDE to override the current policies of SetOverrideType.ADD_OVERRIDE to replace them.
Returns:
the new reference with the changed policies.
Throws:
NO_IMPLEMENT, - always.

_servant_preinvoke

public ServantObject _servant_preinvoke(String operation,
                                        Class expectedType)
This method is called from rmic generated stubs if the Util.isLocal(javax.rmi.CORBA.Stub), called passing this as parameter, returns true. If the method returns null, the requested method is then invoked on this. Else it is invoked on the returned object, casting it into the interface that the local object implements. In this case, the generated stub also later calls _servant_postinvoke(ServantObject), passing that returned target as parameter.

Parameters:
operation - the name of the method being invoked.
expectedType - the interface that the returned servant object must implement.
Throws:
NO_IMPLEMENT - always. If used, the method must be overridden.

_servant_postinvoke

public void _servant_postinvoke(ServantObject servant)
This method is called from rmic generated stubs if the Util.isLocal(javax.rmi.CORBA.Stub), called passing this as parameter, returns true, and the _servant_preinvoke(java.lang.String, java.lang.Class) return non-null object. The stub then invokes the requrested method on that returned object and later calls _servant_postinvoke, passing that returned target as parameter.

Parameters:
servant - the object that has served as the invocation target for the current operation.

_invoke

public InputStream _invoke(OutputStream output)
                    throws ApplicationException,
                           RemarshalException
Invokes the operation. This method takes the OutputStream that was previously returned by a _request(String) and returns an InputStream which contains the reply. Up till jdk 1.5 inclusive this method is marked as unimplemented.

Throws:
NO_IMPLEMENT - always.
ApplicationException
RemarshalException

_is_local

public boolean _is_local()
While it may look that this should return true, the jdk 1.5 API states that it must throw NO_IMPLEMENT instead. The rmi stubs do not call this method to check if the object is local; they call Util.isLocal(javax.rmi.CORBA.Stub) instead (passing this as parameter).

Returns:
never.
Throws:
NO_IMPLEMENT - always.

_orb

public ORB _orb()
This method is not appropriate for the local objects and just throws an exception.

Throws:
NO_IMPLEMENT, - always.

_releaseReply

public void _releaseReply(InputStream input)
This method is not appropriate for the local objects and just throws an exception.

Throws:
NO_IMPLEMENT, - always.

_request

public OutputStream _request(String operation,
                             boolean responseExpected)
This method is not appropriate for the local objects and just throws an exception.

Throws:
NO_IMPLEMENT, - always.

validate_connection

public boolean validate_connection()
This method is not appropriate for the local objects and just throws an exception.

Throws:
NO_IMPLEMENT, - always.