org.omg.CORBA

Class LocalObject

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

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()
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.
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)
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(Stub), called passing this as parameter, returns true, and the _servant_preinvoke(String,Class) return non-null object.
ServantObject
_servant_preinvoke(String operation, Class<T> expectedType)
This method is called from rmic generated stubs if the Util.isLocal(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, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Method Details

_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

_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

_duplicate

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

_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

_get_interface

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

_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

_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

_hash

public int _hash(int maximum)
Specified by:
_hash in interface Object

_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.

_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

_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.

_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(Stub) instead (passing this as parameter).
Returns:
never.
Throws:
NO_IMPLEMENT - always.

_non_existent

public boolean _non_existent()
Always returs false.
Specified by:
_non_existent in interface Object
Returns:
false, always.

_orb

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

_release

public void _release()
This method is not appropriate for the local objects and just throws an exception.
Specified by:
_release in interface Object

_releaseReply

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

_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

_request

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

_servant_postinvoke

public void _servant_postinvoke(ServantObject servant)
This method is called from rmic generated stubs if the Util.isLocal(Stub), called passing this as parameter, returns true, and the _servant_preinvoke(String,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.

_servant_preinvoke

public ServantObject _servant_preinvoke(String operation,
                                        Class<T> expectedType)
This method is called from rmic generated stubs if the Util.isLocal(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.

_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

validate_connection

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

LocalObject.java -- Copyright (C) 2005, 2006 Free Software Foundation, Inc. This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.