4
|
1 |
/*
|
5555
|
2 |
* Copyright (c) 1997, 2006, Oracle and/or its affiliates. All rights reserved.
|
4
|
3 |
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
|
4 |
*
|
|
5 |
* This code is free software; you can redistribute it and/or modify it
|
|
6 |
* under the terms of the GNU General Public License version 2 only, as
|
5555
|
7 |
* published by the Free Software Foundation. Oracle designates this
|
4
|
8 |
* particular file as subject to the "Classpath" exception as provided
|
5555
|
9 |
* by Oracle in the LICENSE file that accompanied this code.
|
4
|
10 |
*
|
|
11 |
* This code is distributed in the hope that it will be useful, but WITHOUT
|
|
12 |
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
|
13 |
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
|
14 |
* version 2 for more details (a copy is included in the LICENSE file that
|
|
15 |
* accompanied this code).
|
|
16 |
*
|
|
17 |
* You should have received a copy of the GNU General Public License version
|
|
18 |
* 2 along with this work; if not, write to the Free Software Foundation,
|
|
19 |
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
20 |
*
|
5555
|
21 |
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
|
22 |
* or visit www.oracle.com if you need additional information or have any
|
|
23 |
* questions.
|
4
|
24 |
*/
|
|
25 |
package org.omg.CORBA.portable;
|
|
26 |
|
|
27 |
import org.omg.CORBA.Request;
|
|
28 |
import org.omg.CORBA.NamedValue;
|
|
29 |
import org.omg.CORBA.NVList;
|
|
30 |
import org.omg.CORBA.ExceptionList;
|
|
31 |
import org.omg.CORBA.ContextList;
|
|
32 |
import org.omg.CORBA.Context;
|
|
33 |
import org.omg.CORBA.TypeCode;
|
|
34 |
import org.omg.CORBA.BAD_OPERATION;
|
|
35 |
import org.omg.CORBA.SystemException;
|
|
36 |
|
|
37 |
|
|
38 |
/**
|
|
39 |
* The common base class for all stub classes; provides default implementations
|
|
40 |
* of the <code>org.omg.CORBA.Object</code> methods. All method implementations are
|
|
41 |
* forwarded to a <code>Delegate</code> object stored in the <code>ObjectImpl</code>
|
|
42 |
* instance. <code>ObjectImpl</code> allows for portable stubs because the
|
|
43 |
* <code>Delegate</code> can be implemented by a different vendor-specific ORB.
|
|
44 |
*/
|
|
45 |
|
|
46 |
abstract public class ObjectImpl implements org.omg.CORBA.Object
|
|
47 |
{
|
|
48 |
|
|
49 |
/**
|
|
50 |
* The field that stores the <code>Delegate</code> instance for
|
|
51 |
* this <code>ObjectImpl</code> object. This <code>Delegate</code>
|
|
52 |
* instance can be implemented by a vendor-specific ORB. Stub classes,
|
|
53 |
* which are derived from this <code>ObjectImpl</code> class, can be
|
|
54 |
* portable because they delegate all of the methods called on them to this
|
|
55 |
* <code>Delegate</code> object.
|
|
56 |
*/
|
|
57 |
private transient Delegate __delegate;
|
|
58 |
|
|
59 |
|
|
60 |
/**
|
|
61 |
* Retrieves the reference to the vendor-specific <code>Delegate</code>
|
|
62 |
* object to which this <code>ObjectImpl</code> object delegates all
|
|
63 |
* methods invoked on it.
|
|
64 |
*
|
|
65 |
* @return the Delegate contained in this ObjectImpl instance
|
|
66 |
* @throws BAD_OPERATION if the delegate has not been set
|
|
67 |
* @see #_set_delegate
|
|
68 |
*/
|
|
69 |
public Delegate _get_delegate() {
|
|
70 |
if (__delegate == null)
|
|
71 |
throw new BAD_OPERATION("The delegate has not been set!");
|
|
72 |
return __delegate;
|
|
73 |
}
|
|
74 |
|
|
75 |
|
|
76 |
/**
|
|
77 |
* Sets the Delegate for this <code>ObjectImpl</code> instance to the given
|
|
78 |
* <code>Delegate</code> object. All method invocations on this
|
|
79 |
* <code>ObjectImpl</code> object will be forwarded to this delegate.
|
|
80 |
*
|
|
81 |
* @param delegate the <code>Delegate</code> instance to which
|
|
82 |
* all method calls on this <code>ObjectImpl</code> object
|
|
83 |
* will be delegated; may be implemented by a third-party ORB
|
|
84 |
* @see #_get_delegate
|
|
85 |
*/
|
|
86 |
public void _set_delegate(Delegate delegate) {
|
|
87 |
__delegate = delegate;
|
|
88 |
}
|
|
89 |
|
|
90 |
/**
|
|
91 |
* Retrieves a string array containing the repository identifiers
|
|
92 |
* supported by this <code>ObjectImpl</code> object. For example,
|
|
93 |
* for a stub, this method returns information about all the
|
|
94 |
* interfaces supported by the stub.
|
|
95 |
*
|
|
96 |
* @return the array of all repository identifiers supported by this
|
|
97 |
* <code>ObjectImpl</code> instance
|
|
98 |
*/
|
|
99 |
public abstract String[] _ids();
|
|
100 |
|
|
101 |
|
|
102 |
/**
|
|
103 |
* Returns a duplicate of this <code>ObjectImpl</code> object.
|
|
104 |
*
|
|
105 |
* @return an <code>orb.omg.CORBA.Object</code> object that is
|
|
106 |
* a duplicate of this object
|
|
107 |
*/
|
|
108 |
public org.omg.CORBA.Object _duplicate() {
|
|
109 |
return _get_delegate().duplicate(this);
|
|
110 |
}
|
|
111 |
|
|
112 |
/**
|
|
113 |
* Releases the resources associated with this <code>ObjectImpl</code> object.
|
|
114 |
*/
|
|
115 |
public void _release() {
|
|
116 |
_get_delegate().release(this);
|
|
117 |
}
|
|
118 |
|
|
119 |
/**
|
|
120 |
* Checks whether the object identified by the given repository
|
|
121 |
* identifier is an <code>ObjectImpl</code> object.
|
|
122 |
*
|
|
123 |
* @param repository_id a <code>String</code> object with the repository
|
|
124 |
* identifier to check
|
|
125 |
* @return <code>true</code> if the object identified by the given
|
|
126 |
* repository id is an instance of <code>ObjectImpl</code>;
|
|
127 |
* <code>false</code> otherwise
|
|
128 |
*/
|
|
129 |
public boolean _is_a(String repository_id) {
|
|
130 |
return _get_delegate().is_a(this, repository_id);
|
|
131 |
}
|
|
132 |
|
|
133 |
/**
|
|
134 |
* Checks whether the the given <code>ObjectImpl</code> object is
|
|
135 |
* equivalent to this <code>ObjectImpl</code> object.
|
|
136 |
*
|
|
137 |
* @param that an instance of <code>ObjectImpl</code> to compare with
|
|
138 |
* this <code>ObjectImpl</code> object
|
|
139 |
* @return <code>true</code> if the given object is equivalent
|
|
140 |
* to this <code>ObjectImpl</code> object;
|
|
141 |
* <code>false</code> otherwise
|
|
142 |
*/
|
|
143 |
public boolean _is_equivalent(org.omg.CORBA.Object that) {
|
|
144 |
return _get_delegate().is_equivalent(this, that);
|
|
145 |
}
|
|
146 |
|
|
147 |
/**
|
|
148 |
* Checks whether the server object for this <code>ObjectImpl</code>
|
|
149 |
* object has been destroyed.
|
|
150 |
*
|
|
151 |
* @return <code>true</code> if the ORB knows authoritatively that the
|
|
152 |
* server object does not exist; <code>false</code> otherwise
|
|
153 |
*/
|
|
154 |
public boolean _non_existent() {
|
|
155 |
return _get_delegate().non_existent(this);
|
|
156 |
}
|
|
157 |
|
|
158 |
/**
|
|
159 |
* Retrieves the hash code that serves as an ORB-internal identifier for
|
|
160 |
* this <code>ObjectImpl</code> object.
|
|
161 |
*
|
|
162 |
* @param maximum an <code>int</code> indicating the upper bound on the hash
|
|
163 |
* value returned by the ORB
|
|
164 |
* @return an <code>int</code> representing the hash code for this
|
|
165 |
* <code>ObjectImpl</code> object
|
|
166 |
*/
|
|
167 |
public int _hash(int maximum) {
|
|
168 |
return _get_delegate().hash(this, maximum);
|
|
169 |
}
|
|
170 |
|
|
171 |
/**
|
|
172 |
* Creates a <code>Request</code> object containing the given method
|
|
173 |
* that can be used with the Dynamic Invocation Interface.
|
|
174 |
*
|
|
175 |
* @param operation the method to be invoked by the new <code>Request</code>
|
|
176 |
* object
|
|
177 |
* @return a new <code>Request</code> object initialized with the
|
|
178 |
* given method
|
|
179 |
*/
|
|
180 |
public Request _request(String operation) {
|
|
181 |
return _get_delegate().request(this, operation);
|
|
182 |
}
|
|
183 |
|
|
184 |
/**
|
|
185 |
* Creates a <code>Request</code> object that contains the given context,
|
|
186 |
* method, argument list, and container for the result.
|
|
187 |
*
|
|
188 |
* @param ctx the Context for the request
|
|
189 |
* @param operation the method that the new <code>Request</code>
|
|
190 |
* object will invoke
|
|
191 |
* @param arg_list the arguments for the method; an <code>NVList</code>
|
|
192 |
* in which each argument is a <code>NamedValue</code> object
|
|
193 |
* @param result a <code>NamedValue</code> object to be used for
|
|
194 |
* returning the result of executing the request's method
|
|
195 |
* @return a new <code>Request</code> object initialized with the
|
|
196 |
* given context, method, argument list, and container for the
|
|
197 |
* return value
|
|
198 |
*/
|
|
199 |
public Request _create_request(Context ctx,
|
|
200 |
String operation,
|
|
201 |
NVList arg_list,
|
|
202 |
NamedValue result) {
|
|
203 |
return _get_delegate().create_request(this,
|
|
204 |
ctx,
|
|
205 |
operation,
|
|
206 |
arg_list,
|
|
207 |
result);
|
|
208 |
}
|
|
209 |
|
|
210 |
/**
|
|
211 |
* Creates a <code>Request</code> object that contains the given context,
|
|
212 |
* method, argument list, container for the result, exceptions, and
|
|
213 |
* list of property names to be used in resolving the context strings.
|
|
214 |
* This <code>Request</code> object is for use in the Dynamic
|
|
215 |
* Invocation Interface.
|
|
216 |
*
|
|
217 |
* @param ctx the <code>Context</code> object that contains the
|
|
218 |
* context strings that must be resolved before they are
|
|
219 |
* sent along with the request
|
|
220 |
* @param operation the method that the new <code>Request</code>
|
|
221 |
* object will invoke
|
|
222 |
* @param arg_list the arguments for the method; an <code>NVList</code>
|
|
223 |
* in which each argument is a <code>NamedValue</code> object
|
|
224 |
* @param result a <code>NamedValue</code> object to be used for
|
|
225 |
* returning the result of executing the request's method
|
|
226 |
* @param exceptions a list of the exceptions that the given method
|
|
227 |
* throws
|
|
228 |
* @param contexts a list of the properties that are needed to
|
|
229 |
* resolve the contexts in <i>ctx</i>; the strings in
|
|
230 |
* <i>contexts</i> are used as arguments to the method
|
|
231 |
* <code>Context.get_values</code>,
|
|
232 |
* which returns the value associated with the given property
|
|
233 |
* @return a new <code>Request</code> object initialized with the
|
|
234 |
* given context strings to resolve, method, argument list,
|
|
235 |
* container for the result, exceptions, and list of property
|
|
236 |
* names to be used in resolving the context strings
|
|
237 |
*/
|
|
238 |
public Request _create_request(Context ctx,
|
|
239 |
String operation,
|
|
240 |
NVList arg_list,
|
|
241 |
NamedValue result,
|
|
242 |
ExceptionList exceptions,
|
|
243 |
ContextList contexts) {
|
|
244 |
return _get_delegate().create_request(this,
|
|
245 |
ctx,
|
|
246 |
operation,
|
|
247 |
arg_list,
|
|
248 |
result,
|
|
249 |
exceptions,
|
|
250 |
contexts);
|
|
251 |
}
|
|
252 |
|
|
253 |
/**
|
|
254 |
* Retrieves the interface definition for this <code>ObjectImpl</code>
|
|
255 |
* object.
|
|
256 |
*
|
|
257 |
* @return the <code>org.omg.CORBA.Object</code> instance that is the
|
|
258 |
* interface definition for this <code>ObjectImpl</code> object
|
|
259 |
*/
|
|
260 |
public org.omg.CORBA.Object _get_interface_def()
|
|
261 |
{
|
|
262 |
// First try to call the delegate implementation class's
|
|
263 |
// "Object get_interface_def(..)" method (will work for JDK1.2 ORBs).
|
|
264 |
// Else call the delegate implementation class's
|
|
265 |
// "InterfaceDef get_interface(..)" method using reflection
|
|
266 |
// (will work for pre-JDK1.2 ORBs).
|
|
267 |
|
|
268 |
org.omg.CORBA.portable.Delegate delegate = _get_delegate();
|
|
269 |
try {
|
|
270 |
// If the ORB's delegate class does not implement
|
|
271 |
// "Object get_interface_def(..)", this will call
|
|
272 |
// get_interface_def(..) on portable.Delegate.
|
|
273 |
return delegate.get_interface_def(this);
|
|
274 |
}
|
|
275 |
catch( org.omg.CORBA.NO_IMPLEMENT ex ) {
|
|
276 |
// Call "InterfaceDef get_interface(..)" method using reflection.
|
|
277 |
try {
|
|
278 |
Class[] argc = { org.omg.CORBA.Object.class };
|
|
279 |
java.lang.reflect.Method meth =
|
|
280 |
delegate.getClass().getMethod("get_interface", argc);
|
|
281 |
Object[] argx = { this };
|
|
282 |
return (org.omg.CORBA.Object)meth.invoke(delegate, argx);
|
|
283 |
}
|
|
284 |
catch( java.lang.reflect.InvocationTargetException exs ) {
|
|
285 |
Throwable t = exs.getTargetException();
|
|
286 |
if (t instanceof Error) {
|
|
287 |
throw (Error) t;
|
|
288 |
}
|
|
289 |
else if (t instanceof RuntimeException) {
|
|
290 |
throw (RuntimeException) t;
|
|
291 |
}
|
|
292 |
else {
|
|
293 |
throw new org.omg.CORBA.NO_IMPLEMENT();
|
|
294 |
}
|
|
295 |
} catch( RuntimeException rex ) {
|
|
296 |
throw rex;
|
|
297 |
} catch( Exception exr ) {
|
|
298 |
throw new org.omg.CORBA.NO_IMPLEMENT();
|
|
299 |
}
|
|
300 |
}
|
|
301 |
}
|
|
302 |
|
|
303 |
/**
|
|
304 |
* Returns a reference to the ORB associated with this object and
|
|
305 |
* its delegate. This is the <code>ORB</code> object that created
|
|
306 |
* the delegate.
|
|
307 |
*
|
|
308 |
* @return the <code>ORB</code> instance that created the
|
|
309 |
* <code>Delegate</code> object contained in this
|
|
310 |
* <code>ObjectImpl</code> object
|
|
311 |
*/
|
|
312 |
public org.omg.CORBA.ORB _orb() {
|
|
313 |
return _get_delegate().orb(this);
|
|
314 |
}
|
|
315 |
|
|
316 |
|
|
317 |
/**
|
|
318 |
* Retrieves the <code>Policy</code> object for this
|
|
319 |
* <code>ObjectImpl</code> object that has the given
|
|
320 |
* policy type.
|
|
321 |
*
|
|
322 |
* @param policy_type an int indicating the policy type
|
|
323 |
* @return the <code>Policy</code> object that is the specified policy type
|
|
324 |
* and that applies to this <code>ObjectImpl</code> object
|
|
325 |
* @see org.omg.CORBA.PolicyOperations#policy_type
|
|
326 |
*/
|
|
327 |
public org.omg.CORBA.Policy _get_policy(int policy_type) {
|
|
328 |
return _get_delegate().get_policy(this, policy_type);
|
|
329 |
}
|
|
330 |
|
|
331 |
/**
|
|
332 |
* Retrieves a list of the domain managers for this
|
|
333 |
* <code>ObjectImpl</code> object.
|
|
334 |
*
|
|
335 |
* @return an array containing the <code>DomainManager</code>
|
|
336 |
* objects for this instance of <code>ObjectImpl</code>
|
|
337 |
*/
|
|
338 |
public org.omg.CORBA.DomainManager[] _get_domain_managers() {
|
|
339 |
return _get_delegate().get_domain_managers(this);
|
|
340 |
}
|
|
341 |
|
|
342 |
/**
|
|
343 |
* Sets this <code>ObjectImpl</code> object's override type for
|
|
344 |
* the given policies to the given instance of
|
|
345 |
* <code>SetOverrideType</code>.
|
|
346 |
*
|
|
347 |
* @param policies an array of <code>Policy</code> objects with the
|
|
348 |
* policies that will replace the current policies or be
|
|
349 |
* added to the current policies
|
|
350 |
* @param set_add either <code>SetOverrideType.SET_OVERRIDE</code>,
|
|
351 |
* indicating that the given policies will replace any existing
|
|
352 |
* ones, or <code>SetOverrideType.ADD_OVERRIDE</code>, indicating
|
|
353 |
* that the given policies should be added to any existing ones
|
|
354 |
* @return an <code>Object</code> with the given policies replacing or
|
|
355 |
* added to its previous policies
|
|
356 |
*/
|
|
357 |
public org.omg.CORBA.Object
|
|
358 |
_set_policy_override(org.omg.CORBA.Policy[] policies,
|
|
359 |
org.omg.CORBA.SetOverrideType set_add) {
|
|
360 |
return _get_delegate().set_policy_override(this, policies,
|
|
361 |
set_add);
|
|
362 |
}
|
|
363 |
|
|
364 |
/**
|
|
365 |
* Checks whether this <code>ObjectImpl</code> object is implemented
|
|
366 |
* by a local servant. If so, local invocation API's may be used.
|
|
367 |
*
|
|
368 |
* @return <code>true</code> if this object is implemented by a local
|
|
369 |
* servant; <code>false</code> otherwise
|
|
370 |
*/
|
|
371 |
public boolean _is_local() {
|
|
372 |
return _get_delegate().is_local(this);
|
|
373 |
}
|
|
374 |
|
|
375 |
/**
|
|
376 |
* Returns a Java reference to the local servant that should be used for sending
|
|
377 |
* a request for the method specified. If this <code>ObjectImpl</code>
|
|
378 |
* object is a local stub, it will invoke the <code>_servant_preinvoke</code>
|
|
379 |
* method before sending a request in order to obtain the
|
|
380 |
* <code>ServantObject</code> instance to use.
|
|
381 |
* <P>
|
|
382 |
* If a <code>ServantObject</code> object is returned, its <code>servant</code>
|
|
383 |
* field has been set to an object of the expected type (Note: the object may
|
|
384 |
* or may not be the actual servant instance). The local stub may cast
|
|
385 |
* the servant field to the expected type, and then invoke the operation
|
|
386 |
* directly. The <code>ServantRequest</code> object is valid for only one
|
|
387 |
* invocation and cannot be used for more than one invocation.
|
|
388 |
*
|
|
389 |
* @param operation a <code>String</code> containing the name of the method
|
|
390 |
* to be invoked. This name should correspond to the method name as
|
|
391 |
* it would be encoded in a GIOP request.
|
|
392 |
*
|
|
393 |
* @param expectedType a <code>Class</code> object representing the
|
|
394 |
* expected type of the servant that is returned. This expected
|
|
395 |
* type is the <code>Class</code> object associated with the
|
|
396 |
* operations class for the stub's interface. For example, a
|
|
397 |
* stub for an interface <code>Foo</code> would pass the
|
|
398 |
* <code>Class</code> object for the <code>FooOperations</code>
|
|
399 |
* interface.
|
|
400 |
*
|
|
401 |
* @return (1) a <code>ServantObject</code> object, which may or may
|
|
402 |
* not be the actual servant instance, or (2) <code>null</code> if
|
|
403 |
* (a) the servant is not local or (b) the servant has ceased to
|
|
404 |
* be local due to a ForwardRequest from a POA ServantManager
|
|
405 |
* @throws org.omg.CORBA.BAD_PARAM if the servant is not the expected type
|
|
406 |
*/
|
|
407 |
public ServantObject _servant_preinvoke(String operation,
|
|
408 |
Class expectedType) {
|
|
409 |
return _get_delegate().servant_preinvoke(this, operation,
|
|
410 |
expectedType);
|
|
411 |
}
|
|
412 |
|
|
413 |
/**
|
|
414 |
* Is called by the local stub after it has invoked an operation
|
|
415 |
* on the local servant that was previously retrieved from a
|
|
416 |
* call to the method <code>_servant_preinvoke</code>.
|
|
417 |
* The <code>_servant_postinvoke</code> method must be called
|
|
418 |
* if the <code>_servant_preinvoke</code>
|
|
419 |
* method returned a non-null value, even if an exception was thrown
|
|
420 |
* by the method invoked by the servant. For this reason, the call
|
|
421 |
* to the method <code>_servant_postinvoke</code> should be placed
|
|
422 |
* in a Java <code>finally</code> clause.
|
|
423 |
*
|
|
424 |
* @param servant the instance of the <code>ServantObject</code>
|
|
425 |
* returned by the <code>_servant_preinvoke</code> method
|
|
426 |
*/
|
|
427 |
public void _servant_postinvoke(ServantObject servant) {
|
|
428 |
_get_delegate().servant_postinvoke(this, servant);
|
|
429 |
}
|
|
430 |
|
|
431 |
/*
|
|
432 |
* The following methods were added by orbos/98-04-03: Java to IDL
|
|
433 |
* Mapping. These are used by RMI over IIOP.
|
|
434 |
*/
|
|
435 |
|
|
436 |
/**
|
|
437 |
* Returns an <code>OutputStream</code> object to use for marshalling
|
|
438 |
* the arguments of the given method. This method is called by a stub,
|
|
439 |
* which must indicate if a response is expected, that is, whether or not
|
|
440 |
* the call is oneway.
|
|
441 |
*
|
|
442 |
* @param operation a String giving the name of the method.
|
|
443 |
* @param responseExpected a boolean -- <code>true</code> if the
|
|
444 |
* request is not one way, that is, a response is expected
|
|
445 |
* @return an <code>OutputStream</code> object for dispatching the request
|
|
446 |
*/
|
|
447 |
public OutputStream _request(String operation,
|
|
448 |
boolean responseExpected) {
|
|
449 |
return _get_delegate().request(this, operation, responseExpected);
|
|
450 |
}
|
|
451 |
|
|
452 |
/**
|
|
453 |
* Invokes an operation and returns an <code>InputStream</code>
|
|
454 |
* object for reading the response. The stub provides the
|
|
455 |
* <code>OutputStream</code> object that was previously returned by a
|
|
456 |
* call to the <code>_request</code> method. The method specified
|
|
457 |
* as an argument to <code>_request</code> when it was
|
|
458 |
* called previously is the method that this method invokes.
|
|
459 |
* <P>
|
|
460 |
* If an exception occurs, the <code>_invoke</code> method may throw an
|
|
461 |
* <code>ApplicationException</code> object that contains an InputStream from
|
|
462 |
* which the user exception state may be unmarshalled.
|
|
463 |
*
|
|
464 |
* @param output an OutputStream object for dispatching the request
|
|
465 |
* @return an <code>InputStream</code> object containing the marshalled
|
|
466 |
* response to the method invoked
|
|
467 |
* @throws ApplicationException if the invocation
|
|
468 |
* meets application-defined exception
|
|
469 |
* @throws RemarshalException if the invocation leads
|
|
470 |
* to a remarshalling error
|
|
471 |
* @see #_request
|
|
472 |
*/
|
|
473 |
public InputStream _invoke(OutputStream output)
|
|
474 |
throws ApplicationException, RemarshalException {
|
|
475 |
return _get_delegate().invoke(this, output);
|
|
476 |
}
|
|
477 |
|
|
478 |
/**
|
|
479 |
* Releases the given
|
|
480 |
* reply stream back to the ORB when unmarshalling has
|
|
481 |
* completed after a call to the method <code>_invoke</code>.
|
|
482 |
* Calling this method is optional for the stub.
|
|
483 |
*
|
|
484 |
* @param input the <code>InputStream</code> object that was returned
|
|
485 |
* by the <code>_invoke</code> method or the
|
|
486 |
* <code>ApplicationException.getInputStream</code> method;
|
|
487 |
* may be <code>null</code>, in which case this method does
|
|
488 |
* nothing
|
|
489 |
* @see #_invoke
|
|
490 |
*/
|
|
491 |
public void _releaseReply(InputStream input) {
|
|
492 |
_get_delegate().releaseReply(this, input);
|
|
493 |
}
|
|
494 |
|
|
495 |
/**
|
|
496 |
* Returns a <code>String</code> object that represents this
|
|
497 |
* <code>ObjectImpl</code> object.
|
|
498 |
*
|
|
499 |
* @return the <code>String</code> representation of this object
|
|
500 |
*/
|
|
501 |
public String toString() {
|
|
502 |
if ( __delegate != null )
|
|
503 |
return __delegate.toString(this);
|
|
504 |
else
|
|
505 |
return getClass().getName() + ": no delegate set";
|
|
506 |
}
|
|
507 |
|
|
508 |
/**
|
|
509 |
* Returns the hash code for this <code>ObjectImpl</code> object.
|
|
510 |
*
|
|
511 |
* @return the hash code for this object
|
|
512 |
*/
|
|
513 |
public int hashCode() {
|
|
514 |
if ( __delegate != null )
|
|
515 |
return __delegate.hashCode(this);
|
|
516 |
else
|
|
517 |
return super.hashCode();
|
|
518 |
}
|
|
519 |
|
|
520 |
/**
|
|
521 |
* Compares this <code>ObjectImpl</code> object with the given one
|
|
522 |
* for equality.
|
|
523 |
*
|
|
524 |
*@param obj the object with which to compare this object
|
|
525 |
*@return <code>true</code> if the two objects are equal;
|
|
526 |
* <code>false</code> otherwise
|
|
527 |
*/
|
|
528 |
public boolean equals(java.lang.Object obj) {
|
|
529 |
if ( __delegate != null )
|
|
530 |
return __delegate.equals(this, obj);
|
|
531 |
else
|
|
532 |
return (this==obj);
|
|
533 |
}
|
|
534 |
}
|