gnu.CORBA.Poa

Class gnuServantObject

Implemented Interfaces:
CurrentOperations, CurrentOperations, InvokeHandler, IorProvider, Object

public class gnuServantObject
extends ObjectImpl
implements Object, InvokeHandler, CurrentOperations, IorProvider

Represents a CORBA object, being locally served by the associated servant. The calls to the object are forwarded to the calls to the servant.

Field Summary

byte[]
Id
The Id of this object.
POAManager
manager
The POA manager, used to control the work of this object.
ORB_1_4
orb
The orb.
gnuPOA
poa
The poa that takes care about this object.
String[]
repository_ids
The object repository ids, if they were specified separately.

Constructor Summary

gnuServantObject(String[] a_repository_ids, byte[] an_id, gnuPOA a_poa, ORB_1_4 an_orb)
Create an object with no connected servant.
gnuServantObject(Servant a_servant, byte[] an_id, ORB_1_4 an_orb, gnuPOA a_poa)
Create a servant object, associated with the passed servant.
gnuServantObject(Servant a_servant, gnuPOA a_poa)
Create a servant object, associated with the passed servant.

Method Summary

String[]
_ids()
Delegates call to servant, passing the poa and Id.
OutputStream
_invoke(String method, InputStream input, ResponseHandler r_handler)
Handle the invocation (delegates to servant).
boolean
_is_a(String idl_id)
Check if this object could be named by the given repository id.
boolean
_is_equivalent(Object other)
Checks if this object is equivalent to another instance.
boolean
_is_local()
Always returns true.
ORB
_orb()
Get an ORB, associated with the servant of this object.
void
_release()
Returns without action.
void
_releaseReply(InputStream stream)
Returns without action.
boolean
equals(Object other)
Compare with another object for equality, comparing the object keys.
InvokeHandler
getHandler(String operation, CookieHolder cookie, boolean forwarding_allowed)
Return the associated invocation handler.
IOR
getIor()
Get the IOR as it would be for this object.
Servant
getServant()
Returns the associated servant.
POA
get_POA()
Get POA.
byte[]
get_object_id()
Get the object id.
int
hashCode()
Get the hash code, based on the object key.
InvokeHandler
servantToHandler(Servant a_servant)
Convert the servant to invocation handler.
void
setServant(Servant a_servant)
Set a servant, if it has not been previously set.
String
toString()
Gets a string representation.

Methods inherited from class org.omg.CORBA.portable.ObjectImpl

_create_request, _create_request, _duplicate, _get_delegate, _get_domain_managers, _get_interface_def, _get_policy, _hash, _ids, _invoke, _is_a, _is_equivalent, _is_local, _non_existent, _orb, _release, _releaseReply, _request, _request, _servant_postinvoke, _set_delegate, _set_policy_override, equals, toString

Methods inherited from class java.lang.Object

clone, equals, extends Object> getClass, finalize, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

Id

public final byte[] Id
The Id of this object.

manager

public final POAManager manager
The POA manager, used to control the work of this object.

orb

public final ORB_1_4 orb
The orb.

poa

public final gnuPOA poa
The poa that takes care about this object.

repository_ids

public final String[] repository_ids
The object repository ids, if they were specified separately. Normally, the ids are requested from the servant.

Constructor Details

gnuServantObject

public gnuServantObject(String[] a_repository_ids,
                        byte[] an_id,
                        gnuPOA a_poa,
                        ORB_1_4 an_orb)
Create an object with no connected servant. The servant must be set later.
Parameters:
a_repository_ids - an array of repository ids, can be null (then ids will be requested from the servant).
an_id - the object id.
a_poa - the POA.

gnuServantObject

public gnuServantObject(Servant a_servant,
                        byte[] an_id,
                        ORB_1_4 an_orb,
                        gnuPOA a_poa)
Create a servant object, associated with the passed servant.
Parameters:
a_servant - a servant, serving this object.
an_id - an Object Id for this object.
Throws:
BAD_PARAM - if the passed servant is not an InvokeHandler.

gnuServantObject

public gnuServantObject(Servant a_servant,
                        gnuPOA a_poa)
Create a servant object, associated with the passed servant. Requests the object id from the servant. Depending on the policies of the servants POA, the calls are eithe not synchronized or synchronized on POA or ORB.
Parameters:
a_servant - a servant, serving this object.

Method Details

_ids

public String[] _ids()
Delegates call to servant, passing the poa and Id.
Overrides:
_ids in interface ObjectImpl

_invoke

public OutputStream _invoke(String method,
                            InputStream input,
                            ResponseHandler r_handler)
            throws SystemException
Handle the invocation (delegates to servant).
Specified by:
_invoke in interface InvokeHandler
Throws:
TRANSIENT - minor 0x535503e9 if the POA is in discarding mode.
OBJ_ADAPTER - minor 0x535503ea if the POA is inactivated.

_is_a

public boolean _is_a(String idl_id)
Check if this object could be named by the given repository id.
Specified by:
_is_a in interface Object
Overrides:
_is_a in interface ObjectImpl
Parameters:
idl_id - the repository id to check.
Returns:
true if it is one of the possible repository ids of this object.

_is_equivalent

public boolean _is_equivalent(Object other)
Checks if this object is equivalent to another instance. These objects are assumed equal if they are connected to the same orb and poa under the same Id, regardless of they delegates.
Specified by:
_is_equivalent in interface Object
Overrides:
_is_equivalent in interface ObjectImpl
Parameters:
other - instance to check.
Returns:

_is_local

public boolean _is_local()
Always returns true.
Overrides:
_is_local in interface ObjectImpl

_orb

public ORB _orb()
Get an ORB, associated with the servant of this object.
Overrides:
_orb in interface ObjectImpl
Returns:

_release

public void _release()
Returns without action.
Specified by:
_release in interface Object
Overrides:
_release in interface ObjectImpl

_releaseReply

public void _releaseReply(InputStream stream)
Returns without action.
Overrides:
_releaseReply in interface ObjectImpl

equals

public boolean equals(Object other)
Compare with another object for equality, comparing the object keys.
Overrides:
equals in interface ObjectImpl

getHandler

public InvokeHandler getHandler(String operation,
                                CookieHolder cookie,
                                boolean forwarding_allowed)
            throws gnuForwardRequest
Return the associated invocation handler.

getIor

public IOR getIor()
Get the IOR as it would be for this object.
Specified by:
getIor in interface IorProvider

getServant

public Servant getServant()
Returns the associated servant.

get_POA

public POA get_POA()
Get POA.
Specified by:
get_POA in interface CurrentOperations

get_object_id

public byte[] get_object_id()
Get the object id.
Specified by:
get_object_id in interface CurrentOperations

hashCode

public int hashCode()
Get the hash code, based on the object key.
Overrides:
hashCode in interface Object

servantToHandler

public InvokeHandler servantToHandler(Servant a_servant)
Convert the servant to invocation handler.

setServant

public void setServant(Servant a_servant)
Set a servant, if it has not been previously set.
Parameters:
a_servant - a servant to set, can be null to indicate the necessity for the subsequent activation.
Throws:
BAD_PARAM - if the passed servant is not an InvokeHandler or DynamicImplementation and also not null.

toString

public String toString()
Gets a string representation.
Overrides:
toString in interface ObjectImpl

gnuServantObject.java -- Copyright (C) 2005 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.