Source for org.omg.DynamicAny.DynStructOperations

   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: }