Source for org.omg.DynamicAny.DynSequenceOperations

   1: /* DynSequenceOperations.java --
   2:    Copyright (C) 2005 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.Any;
  41: import org.omg.DynamicAny.DynAnyPackage.InvalidValue;
  42: import org.omg.DynamicAny.DynAnyPackage.TypeMismatch;
  43: 
  44: /**
  45:  * Defines operations, applicable to DynSequence. These are basically the same
  46:  * operations as for {@link DynArrayOperations} with additional possibility to
  47:  * change the length of the sequence. If the
  48:  * {@link org.omg.CORBA.TypeCode#length()} method of the sequence typecode
  49:  * returns positive value, it is treated as a sequence bound. An attempt to
  50:  * extend the sequence above its bound raises {@link InvalidValue}.
  51:  *
  52:  * @author Audrius Meskauskas, Lithuania (AudriusA@Bioinformatics.org)
  53:  */
  54: public interface DynSequenceOperations
  55:   extends DynAnyOperations
  56: {
  57:   /**
  58:    * Get the length of the sequence.
  59:    *
  60:    * @return the current sequence length that was taken from typecode or changed
  61:    * with set_length.
  62:    */
  63:   int get_length();
  64: 
  65:   /**
  66:    * Set the length of the sequence. If the sequence is shortened, the tailing
  67:    * members are discarded, but the remaining content is not affected. If the
  68:    * new length is larger than the previous one, the new members are added to
  69:    * the end of the sequence. These new members are initialised to they default
  70:    * values.
  71:    *
  72:    * @param length the new length of the sequence.
  73:    *
  74:    * @throws InvalidValue if this is a bounded sequence, and the size being set
  75:    * exceeds the sequence bound.
  76:    */
  77:   public void set_length(int length)
  78:     throws InvalidValue;
  79: 
  80:   /**
  81:    * Returns the array, containing the sequence elements.
  82:    *
  83:    * @return the array of elements as an array of DynAny's.
  84:    */
  85:   DynAny[] get_elements_as_dyn_any();
  86: 
  87:   /**
  88:    * Returns the array, containing the sequence elements.
  89:    *
  90:    * @return the array of elements as an array of Any's.
  91:    */
  92:   Any[] get_elements();
  93: 
  94:   /**
  95:    * Sets the sequence elements from the array. The length of the sequence is
  96:    * set to the length of the passed array.
  97:    *
  98:    * @param value the array of elements an DynAny's.
  99:    *
 100:    * @throws TypeMismatch if the members of the passed array does not match
 101:    * sequence component type.
 102:    *
 103:    * @throws InvalidValue if this is a bounded sequence and the number of
 104:    * elements in the passed array exceeds the sequence bound.
 105:    */
 106:   void set_elements_as_dyn_any(DynAny[] value)
 107:     throws TypeMismatch, InvalidValue;
 108: 
 109:   /**
 110:    * Sets the sequence elements from the array. The length of the sequence is
 111:    * set to the length of the passed array.
 112:    *
 113:    * @param value the array of elements as Any's.
 114:    *
 115:    *
 116:    * @throws TypeMismatch if the members of the passed array does not match
 117:    * sequence component type.
 118:    *
 119:    * @throws InvalidValue if this is a bounded sequence and the number of
 120:    * elements in the passed array exceeds the sequence bound.
 121:    */
 122:   void set_elements(Any[] value)
 123:     throws TypeMismatch, InvalidValue;
 124: }