org.omg.CORBA.portable

Class Delegate

Known Direct Subclasses:
Delegate

public abstract class Delegate
extends Object

Specifies a vendor specific implementation of the Object methods. The calls to these methods are forwarded to the object delegate that can be replaced, if needed. The first parameter is the actual CORBA object to that the operation must be applied. Some methods in this class are not abstract, but no implemented, thowing the NO_IMPLEMENT. This, however, does not mean that they are not implemented in the derived classes as well.

Method Summary

abstract Request
create_request(Object target, Context context, String operation, NVList parameters, NamedValue returns)
Create a request to invoke the method of this object.
abstract Request
create_request(Object target, Context context, String operation, NVList parameters, NamedValue returns, ExceptionList exceptions, ContextList ctx_list)
Create a request to invoke the method of this object, specifying context list and the list of the expected exception.
abstract Object
duplicate(Object target)
Duplicate the object reference.
boolean
equals(Object self, Object other)
Compares two objects for equality.
DomainManager[]
get_domain_managers(Object target)
Retrieve the domain managers for this object.
abstract Object
get_interface_def(Object target)
Policy
get_policy(Object target, int a_policy_type)
Returns the Policy, applying to this object.
abstract int
hash(Object target, int maximum)
Get the hashcode this object reference.
int
hashCode(Object target)
Return the hashcode for this CORBA object.
InputStream
invoke(Object target, OutputStream output)
Invoke the operation.
abstract boolean
is_a(Object target, String repositoryIdentifer)
Check if this object can be referenced by the given repository id.
abstract boolean
is_equivalent(Object target, Object other)
Return true if the other object references are equivalent, so far as it is possible to determine this easily.
boolean
is_local(Object self)
Returns true if the object is local.
abstract boolean
non_existent(Object target)
Determines if the server object for this reference has already been destroyed.
ORB
orb(Object target)
Provides the reference to ORB.
abstract void
release(Object target)
Free resoureces, occupied by this reference.
void
releaseReply(Object target, InputStream input)
Release the reply stream back to ORB after finishing reading the data from it.
abstract Request
request(Object target, String operation)
Create a request to invoke the method of this CORBA object.
OutputStream
request(Object target, String operation, boolean response_expected)
Create a request to invoke the method of this CORBA object.
void
servant_postinvoke(Object self, ServantObject servant)
This method is always called after invoking the operation on the local servant.
Object
set_policy_override(Object target, Policy[] policies, SetOverrideType how)
Returns a new object with the new policies either replacing or extending the current policies, depending on the second parameter.
String
toString(Object self)
Return a string representation of the passed object.

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 abstract Request create_request(Object target,
                                       Context context,
                                       String operation,
                                       NVList parameters,
                                       NamedValue returns)
Create a request to invoke the method of this object.
Parameters:
target - the CORBA object, to that this operation must be applied.
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.

create_request

public abstract Request create_request(Object target,
                                       Context context,
                                       String operation,
                                       NVList parameters,
                                       NamedValue returns,
                                       ExceptionList exceptions,
                                       ContextList ctx_list)
Create a request to invoke the method of this object, specifying context list and the list of the expected exception.
Parameters:
target - the CORBA object, to that this operation must be applied.
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.

duplicate

public abstract Object duplicate(Object target)
Duplicate the object reference. This does not make much sense for java platform and is just included for the sake of compliance with CORBA APIs.
Parameters:
target - the CORBA object, to that this operation must be applied. The method may return the object reference itself.
Returns:
as a rule, this.

equals

public boolean equals(Object self,
                      Object other)
Compares two objects for equality. The default implementations delegated call to Object.equals(Object).
Parameters:
self - this CORBA object.
other - the other CORBA object.
Returns:
true if the objects are equal.

get_domain_managers

public DomainManager[] get_domain_managers(Object target)
Retrieve the domain managers for this object.
Parameters:
target - the CORBA object, to that this operation must be applied.
Returns:
the domain managers.

get_interface_def

public abstract Object get_interface_def(Object target)
Parameters:
target - the CORBA object, to that this operation must be applied. Get the InterfaceDef for this Object.

get_policy

public Policy get_policy(Object target,
                         int a_policy_type)
            throws BAD_PARAM
Returns the Policy, applying to this object.
Parameters:
target - the CORBA object, to that this operation must be applied.
a_policy_type - a type of policy to be obtained.
Returns:
a corresponding Policy object.

hash

public abstract int hash(Object target,
                         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.
Parameters:
target - the CORBA object, to that this operation must be applied.
maximum - the maximal value to return.
Returns:
the hashcode.

hashCode

public int hashCode(Object target)
Return the hashcode for this CORBA object. The default implementation delegates call to hash(Object,int), passing Integer.MAX_VALUE as an argument.
Parameters:
target - the object, for that the hash code must be computed.
Returns:
the hashcode.

invoke

public InputStream invoke(Object target,
                          OutputStream output)
            throws ApplicationException,
                   RemarshalException
Invoke the operation.
Parameters:
target - the invocation target.
output - the stream, containing the written arguments.
Returns:
the stream, from where the input parameters could be read.
Throws:
ApplicationException - if the application throws an exception, defined as a part of its remote method definition.
RemarshalException - if reading(remarshalling) fails.

is_a

public abstract boolean is_a(Object target,
                             String repositoryIdentifer)
Check if this object can be referenced by the given repository id.
Parameters:
target - the CORBA object, to that this operation must be applied.
repositoryIdentifer - the repository id.
Returns:
true if the passed parameter is a repository id of this CORBA object.

is_equivalent

public abstract boolean is_equivalent(Object target,
                                      Object other)
Return true if the other object references are equivalent, so far as it is possible to determine this easily.
Parameters:
target - the CORBA object, to that this operation must be applied.
other - the other object reference.
Returns:
true if both references refer the same object, false if they probably can refer different objects.

is_local

public boolean is_local(Object self)
Returns true if the object is local.
Parameters:
self - the object to check.
Returns:
false, always (following 1.4 specs). Override to get functionality.

non_existent

public abstract boolean non_existent(Object target)
Determines if the server object for this reference has already been destroyed.
Parameters:
target - the CORBA object, to that this operation must be applied.
Returns:
true if the object has been destroyed, false otherwise.

orb

public ORB orb(Object target)
Provides the reference to ORB.
Parameters:
target - the object reference.
Returns:
the associated ORB.

release

public abstract void release(Object target)
Free resoureces, occupied by this reference. The object implementation is not notified, and the other references to the same object are not affected.
Parameters:
target - the CORBA object, to that this operation must be applied.

releaseReply

public void releaseReply(Object target,
                         InputStream input)
Release the reply stream back to ORB after finishing reading the data from it.
Parameters:
target - the CORBA object, to that this operation must be applied.
input - the stream, normally returned by invoke(Object,OutputStream) or ApplicationException.getInputStream(), can be null. The default method returns without action.

request

public abstract Request request(Object target,
                                String operation)
Create a request to invoke the method of this CORBA object.
Parameters:
target - the CORBA object, to that this operation must be applied.
operation - the name of the method to invoke.
Returns:
the request.

request

public OutputStream request(Object target,
                            String operation,
                            boolean response_expected)
Create a request to invoke the method of this CORBA object.
Parameters:
target - the CORBA object, to that this operation must be applied.
operation - the name of the method to invoke.
response_expected - specifies if this is one way message or the response to the message is expected.
Returns:
the stream where the method arguments should be written.

servant_postinvoke

public void servant_postinvoke(Object self,
                               ServantObject servant)
This method is always called after invoking the operation on the local servant. The default method returns without action.
Parameters:
self - the object.
servant - the servant.

set_policy_override

public Object set_policy_override(Object target,
                                  Policy[] policies,
                                  SetOverrideType how)
Returns a new object with the new policies either replacing or extending the current policies, depending on the second parameter.
Parameters:
target - the CORBA object, to that this operation must be applied.
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.

toString

public String toString(Object self)
Return a string representation of the passed object.
Parameters:
self - the CORBA object, to that the string representation must be returned. By default, the call is delegated to Object.toString().
Returns:
the string representation.

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