001 /* DynStructOperations.java -- 002 Copyright (C) 2005, 2006 Free Software Foundation, Inc. 003 This file is part of GNU Classpath. 004 005 GNU Classpath is free software; you can redistribute it and/or modify 006 it under the terms of the GNU General Public License as published by 007 the Free Software Foundation; either version 2, or (at your option) 008 any later version. 009 010 GNU Classpath is distributed in the hope that it will be useful, but 011 WITHOUT ANY WARRANTY; without even the implied warranty of 012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 013 General Public License for more details. 014 015 You should have received a copy of the GNU General Public License 016 along with GNU Classpath; see the file COPYING. If not, write to the 017 Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 018 02110-1301 USA. 019 020 Linking this library statically or dynamically with other modules is 021 making a combined work based on this library. Thus, the terms and 022 conditions of the GNU General Public License cover the whole 023 combination. 024 025 As a special exception, the copyright holders of this library give you 026 permission to link this library with independent modules to produce an 027 executable, regardless of the license terms of these independent 028 modules, and to copy and distribute the resulting executable under 029 terms of your choice, provided that you also meet, for each linked 030 independent module, the terms and conditions of the license of that 031 module. An independent module is a module which is not derived from 032 or based on this library. If you modify this library, you may extend 033 this exception to your version of the library, but you are not 034 obligated to do so. If you do not wish to do so, delete this 035 exception statement from your version. */ 036 037 038 package org.omg.DynamicAny; 039 040 import org.omg.CORBA.TCKind; 041 import org.omg.DynamicAny.DynAnyPackage.InvalidValue; 042 import 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 */ 049 public 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 }