001/* DynStructOperations.java -- 002 Copyright (C) 2005, 2006 Free Software Foundation, Inc. 003This file is part of GNU Classpath. 004 005GNU Classpath is free software; you can redistribute it and/or modify 006it under the terms of the GNU General Public License as published by 007the Free Software Foundation; either version 2, or (at your option) 008any later version. 009 010GNU Classpath is distributed in the hope that it will be useful, but 011WITHOUT ANY WARRANTY; without even the implied warranty of 012MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 013General Public License for more details. 014 015You should have received a copy of the GNU General Public License 016along with GNU Classpath; see the file COPYING. If not, write to the 017Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 01802110-1301 USA. 019 020Linking this library statically or dynamically with other modules is 021making a combined work based on this library. Thus, the terms and 022conditions of the GNU General Public License cover the whole 023combination. 024 025As a special exception, the copyright holders of this library give you 026permission to link this library with independent modules to produce an 027executable, regardless of the license terms of these independent 028modules, and to copy and distribute the resulting executable under 029terms of your choice, provided that you also meet, for each linked 030independent module, the terms and conditions of the license of that 031module. An independent module is a module which is not derived from 032or based on this library. If you modify this library, you may extend 033this exception to your version of the library, but you are not 034obligated to do so. If you do not wish to do so, delete this 035exception statement from your version. */ 036 037 038package org.omg.DynamicAny; 039 040import org.omg.CORBA.TCKind; 041import org.omg.DynamicAny.DynAnyPackage.InvalidValue; 042import org.omg.DynamicAny.DynAnyPackage.TypeMismatch; 043 044/** 045 * Defines the operations, applicable to the DynStructure. 046 * 047 * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org) 048 */ 049public interface DynStructOperations 050 extends DynAnyOperations 051{ 052 /** 053 * Get the kind of the structure field at the current position. 054 * 055 * @return the kind of field. 056 * 057 * @throws TypeMismatch for an empty structure (normally exception). 058 * @throws InvalidValue if the current position does not indicate a memeber. 059 */ 060 TCKind current_member_kind() 061 throws TypeMismatch, InvalidValue; 062 063 /** 064 * Get the name of the structure field at the current position. 065 * 066 * @return the name of the field. 067 * 068 * @throws TypeMismatch for an empty structure (normally exception). 069 * @throws InvalidValue if the current position does not indicate a memeber. 070 */ 071 String current_member_name() 072 throws TypeMismatch, InvalidValue; 073 074 /** 075 * Return array, describing describing the name and the value of each member 076 * in the structure. 077 * 078 * @return an array of NameDynAnyPair's, each defining a single field in this 079 * structure. 080 */ 081 NameDynAnyPair[] get_members_as_dyn_any(); 082 083 /** 084 * Return array, describing describing the name and the value of each member 085 * in the structure. 086 * 087 * @return an array of NameValuePair's, each defining a single field in this 088 * structure. 089 */ 090 NameValuePair[] get_members(); 091 092 /** 093 * Set the structure contend from the array, where each member defines the 094 * name and value of the structure field. If the passed array is not empty, 095 * the current position is set to the first member. 096 * 097 * The members of array must follow in the same order as the structure fields, 098 * how they are defined in the typecode. The name-based value assignment is 099 * 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}