Frames | No Frames |
1: /* Object.java -- 2: Copyright (C) 2005 Free Software Foundation, Inc. 3: 4: This file is part of GNU Classpath. 5: 6: GNU Classpath is free software; you can redistribute it and/or modify 7: it under the terms of the GNU General Public License as published by 8: the Free Software Foundation; either version 2, or (at your option) 9: any later version. 10: 11: GNU Classpath is distributed in the hope that it will be useful, but 12: WITHOUT ANY WARRANTY; without even the implied warranty of 13: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14: General Public License for more details. 15: 16: You should have received a copy of the GNU General Public License 17: along with GNU Classpath; see the file COPYING. If not, write to the 18: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 19: 02110-1301 USA. 20: 21: Linking this library statically or dynamically with other modules is 22: making a combined work based on this library. Thus, the terms and 23: conditions of the GNU General Public License cover the whole 24: combination. 25: 26: As a special exception, the copyright holders of this library give you 27: permission to link this library with independent modules to produce an 28: executable, regardless of the license terms of these independent 29: modules, and to copy and distribute the resulting executable under 30: terms of your choice, provided that you also meet, for each linked 31: independent module, the terms and conditions of the license of that 32: module. An independent module is a module which is not derived from 33: or based on this library. If you modify this library, you may extend 34: this exception to your version of the library, but you are not 35: obligated to do so. If you do not wish to do so, delete this 36: exception statement from your version. */ 37: 38: 39: package org.omg.CORBA; 40: 41: /** 42: * The CORBA object reference. The object can be either local or remote. 43: * For the local object, the methods of the derived object are called 44: * like on any other java object. For the remote object, the reference 45: * points to the stup (proxy), responsible for the remote invocation. 46: * 47: * @author Audrius Meskauskas (AudriusA@Bioinformatics.org) 48: */ 49: public interface Object 50: { 51: /** 52: * Create a request to invoke the method of this object. 53: * 54: * @param context a list of additional properties. 55: * @param operation the name of method to be invoked. 56: * @param parameters the method parameters. 57: * @param returns the container for tge method returned value. 58: * 59: * @return the created reaquest. 60: */ 61: Request _create_request(Context context, String operation, NVList parameters, 62: NamedValue returns 63: ); 64: 65: /** 66: * Create a request to invoke the method of this object, specifying 67: * context list and the list of the expected exception. 68: * 69: * @param context a list of additional properties. 70: * @param operation the name of method to be invoked. 71: * @param parameters the method parameters. 72: * @param returns the container for tge method returned value. 73: * @param exceptions the list of the possible exceptions that the method 74: * can throw. 75: * @param ctx_list the list of the context strings that need to be 76: * resolved and send as a context instance. 77: * 78: * @return the created reaquest. 79: */ 80: Request _create_request(Context context, String operation, NVList parameters, 81: NamedValue returns, ExceptionList exceptions, 82: ContextList ctx_list 83: ); 84: 85: /** 86: * Duplicate the object reference. This does not make much sense for 87: * java platform and is just included for the sake of compliance with 88: * CORBA APIs. 89: * 90: * The method may return the object reference itself. 91: * 92: * @return as a rule, <code>this</code>. 93: */ 94: org.omg.CORBA.Object _duplicate(); 95: 96: /** 97: * Retrieve the domain managers for this object. 98: * 99: * @return the domain managers. 100: */ 101: DomainManager[] _get_domain_managers(); 102: 103: /** 104: * Get the <code>InterfaceDef</code> for this Object. 105: */ 106: org.omg.CORBA.Object _get_interface_def(); 107: 108: /** 109: * Returns the {@link Policy}, applying to this object. 110: * 111: * @param a_policy_type a type of policy to be obtained. 112: * @return a corresponding Policy object. 113: * 114: * @throws BAD_PARAM if the policy of the given type is not 115: * associated with this object, or if it is not supported by this ORB. 116: */ 117: Policy _get_policy(int a_policy_type) 118: throws BAD_PARAM; 119: 120: /** 121: * Get the hashcode this object reference. The same hashcode still 122: * does not means that the references are the same. From the other 123: * side, two different references may still refer to the same CORBA 124: * object. The returned value must not change during the object 125: * lifetime. 126: * 127: * @param maximum the maximal value to return. 128: * 129: * @return the hashcode. 130: */ 131: int _hash(int maximum); 132: 133: /** 134: * Check if this object can be referenced by the given repository id. 135: * 136: * @param repositoryIdentifer the repository id. 137: * 138: * @return true if the passed parameter is a repository id of this 139: * CORBA object. 140: */ 141: boolean _is_a(String repositoryIdentifer); 142: 143: /** 144: * Return true if the other object references are equivalent, so far as 145: * it is possible to determine this easily. 146: * 147: * @param other the other object reference. 148: * 149: * @return true if both references refer the same object, false 150: * if they probably can refer different objects. 151: */ 152: boolean _is_equivalent(org.omg.CORBA.Object other); 153: 154: /** 155: * Determines if the server object for this reference has already 156: * been destroyed. 157: * 158: * @return true if the object has been destroyed, false otherwise. 159: */ 160: boolean _non_existent(); 161: 162: /** 163: * Free resoureces, occupied by this reference. The object implementation 164: * is not notified, and the other references to the same object are not 165: * affected. 166: */ 167: void _release(); 168: 169: /** 170: * Create a request to invoke the method of this CORBA object. 171: * 172: * @param operation the name of the method to invoke. 173: * 174: * @return the request. 175: */ 176: Request _request(String operation); 177: 178: /** 179: * Returns a new object with the new policies either replacing or 180: * extending the current policies, depending on the second parameter. 181: * 182: * @param policies the policy additions or replacements. 183: * 184: * @param how either {@link SetOverrideType#SET_OVERRIDE} to override the 185: * current policies of {@link SetOverrideType#ADD_OVERRIDE} to replace 186: * them. 187: * 188: * @return the new reference with the changed policies. 189: */ 190: Object _set_policy_override(Policy[] policies, SetOverrideType how); 191: }