org.omg.CORBA.portable
Class Delegate

java.lang.Object
  extended by org.omg.CORBA.portable.Delegate
Direct Known 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.


Constructor Summary
Delegate()
           
 
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.
 ServantObject servant_preinvoke(Object self, String operation, Class expectedType)
          Returns a servant that should be used for this request.
 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, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

Delegate

public Delegate()
Method Detail

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.

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.
Throws:
NO_IMPLEMENT, - always (following the 1.4 specification).

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.
Throws:
NO_IMPLEMENT, - always (following the 1.4 specification).
BAD_PARAM

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.

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.

equals

public boolean equals(Object self,
                      Object other)
Compares two objects for equality. The default implementations delegated call to Object.equals(java.lang.Object).

Parameters:
self - this CORBA object.
other - the other CORBA object.
Returns:
true if the objects are equal.

hashCode

public int hashCode(Object target)
Return the hashcode for this CORBA object. The default implementation delegates call to hash(org.omg.CORBA.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.
NO_IMPLEMENT, - always (following the 1.4 specification).

orb

public ORB orb(Object target)
Provides the reference to ORB.

Parameters:
target - the object reference.
Returns:
the associated ORB.
Throws:
NO_IMPLEMENT, - always (following the 1.4 specification).

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(org.omg.CORBA.Object, org.omg.CORBA.portable.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.

servant_preinvoke

public ServantObject servant_preinvoke(Object self,
                                       String operation,
                                       Class expectedType)
Returns a servant that should be used for this request. The servant can also be casted to the expected type, calling the required method directly.

Parameters:
self - the object
operation - the operation
expectedType - the expected type of the servant. This implementation always returns null; override for different behavior.
Returns:
the servant or null if the servant is not an expected type of the method is not supported, for example, due security reasons.

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.
Throws:
NO_IMPLEMENT, - always (following the 1.4 specification).

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.