Frames | No Frames |
1: /* DynStructOperations.java -- 2: Copyright (C) 2005, 2006 Free Software Foundation, Inc. 3: This file is part of GNU Classpath. 4: 5: GNU Classpath is free software; you can redistribute it and/or modify 6: it under the terms of the GNU General Public License as published by 7: the Free Software Foundation; either version 2, or (at your option) 8: any later version. 9: 10: GNU Classpath is distributed in the hope that it will be useful, but 11: WITHOUT ANY WARRANTY; without even the implied warranty of 12: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 13: General Public License for more details. 14: 15: You should have received a copy of the GNU General Public License 16: along with GNU Classpath; see the file COPYING. If not, write to the 17: Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 18: 02110-1301 USA. 19: 20: Linking this library statically or dynamically with other modules is 21: making a combined work based on this library. Thus, the terms and 22: conditions of the GNU General Public License cover the whole 23: combination. 24: 25: As a special exception, the copyright holders of this library give you 26: permission to link this library with independent modules to produce an 27: executable, regardless of the license terms of these independent 28: modules, and to copy and distribute the resulting executable under 29: terms of your choice, provided that you also meet, for each linked 30: independent module, the terms and conditions of the license of that 31: module. An independent module is a module which is not derived from 32: or based on this library. If you modify this library, you may extend 33: this exception to your version of the library, but you are not 34: obligated to do so. If you do not wish to do so, delete this 35: exception statement from your version. */ 36: 37: 38: package org.omg.DynamicAny; 39: 40: import org.omg.CORBA.TCKind; 41: import org.omg.DynamicAny.DynAnyPackage.InvalidValue; 42: import org.omg.DynamicAny.DynAnyPackage.TypeMismatch; 43: 44: /** 45: * Defines the operations, applicable to the DynStructure. 46: * 47: * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) 48: */ 49: public interface DynStructOperations 50: extends DynAnyOperations 51: { 52: /** 53: * Get the kind of the structure field at the current position. 54: * 55: * @return the kind of field. 56: * 57: * @throws TypeMismatch for an empty structure (normally exception). 58: * @throws InvalidValue if the current position does not indicate a memeber. 59: */ 60: TCKind current_member_kind() 61: throws TypeMismatch, InvalidValue; 62: 63: /** 64: * Get the name of the structure field at the current position. 65: * 66: * @return the name of the field. 67: * 68: * @throws TypeMismatch for an empty structure (normally exception). 69: * @throws InvalidValue if the current position does not indicate a memeber. 70: */ 71: String current_member_name() 72: throws TypeMismatch, InvalidValue; 73: 74: /** 75: * Return array, describing describing the name and the value of each member 76: * in the structure. 77: * 78: * @return an array of NameDynAnyPair's, each defining a single field in this 79: * structure. 80: */ 81: NameDynAnyPair[] get_members_as_dyn_any(); 82: 83: /** 84: * Return array, describing describing the name and the value of each member 85: * in the structure. 86: * 87: * @return an array of NameValuePair's, each defining a single field in this 88: * structure. 89: */ 90: NameValuePair[] get_members(); 91: 92: /** 93: * Set the structure contend from the array, where each member defines the 94: * name and value of the structure field. If the passed array is not empty, 95: * the current position is set to the first member. 96: * 97: * The members of array must follow in the same order as the structure fields, 98: * how they are defined in the typecode. The name-based value assignment is 99: * not supported. 100: * 101: * @specnote The name-based value assignment is not supported by Sun's jdk 102: * 1.4. 103: * 104: * @param value an array of NameDynValuePair's, each defining a single field in the 105: * structure. 106: * 107: * @throws TypeMismatch if the member of the passed array has a different type 108: * than the corresponding structure field. 109: * 110: * @throws InvalidValue if the size of the passed array is not the same as the 111: * number of fields in this structure. 112: */ 113: void set_members_as_dyn_any(NameDynAnyPair[] value) 114: throws TypeMismatch, InvalidValue; 115: 116: /** 117: * Set the structure contend from the array, where each member defines the 118: * name and value of the structure field. If the passed array is not empty, 119: * the current position is set to the first member. 120: * 121: * The members of array must follow in the same order as the structure fields, 122: * how they are defined in the typecode. The name-based value assignment is 123: * not supported. 124: * 125: * @specnote The name-based value assignment is not supported by Sun's jdk 126: * 1.4. 127: * 128: * @param value an array of NameValuePair's, each defining a single field in the 129: * structure. 130: * 131: * @throws TypeMismatch if the member of the passed array has a different type 132: * than the corresponding structure field. 133: * 134: * @throws InvalidValue if the size of the passed array is not the same as the 135: * number of fields in this structure. 136: */ 137: void set_members(NameValuePair[] value) 138: throws TypeMismatch, InvalidValue; 139: 140: }