? org/omg/CORBA/DynValue.java
Index: org/omg/CORBA/ORB.java
===================================================================
RCS file: /cvsroot/classpath/classpath/org/omg/CORBA/ORB.java,v
retrieving revision 1.7
diff -u -r1.7 ORB.java
--- org/omg/CORBA/ORB.java	26 May 2005 21:53:24 -0000	1.7
+++ org/omg/CORBA/ORB.java	27 May 2005 14:22:34 -0000
@@ -39,6 +39,7 @@
 package org.omg.CORBA;
 
 import gnu.CORBA.Restricted_ORB;
+import gnu.CORBA.primitiveTypeCode;
 import gnu.CORBA.fixedTypeCode;
 import gnu.CORBA.generalTypeCode;
 import gnu.CORBA.gnuContext;
@@ -578,6 +579,43 @@
     return t;
   }
 
+  /**
+   * Create a typecode, representing a tree-like structure.
+   * This structure contains a member that is a sequence of the same type,
+   * as the structure itself. You can imagine as if the folder definition
+   * contains a variable-length array of the enclosed (nested) folder
+   * definitions. In this way, it is possible to have a tree like
+   * structure that can be transferred via CORBA CDR stream.
+   *
+   * @deprecated It is easier and clearler to use a combination of
+   * create_recursive_tc and create_sequence_tc instead.
+   *
+   * @param bound the maximal expected number of the nested components
+   * on each node; 0 if not limited.
+   *
+   * @param offset the position of the field in the returned structure
+   * that contains the sequence of the structures of the same field.
+   * The members before this field are intialised using parameterless
+   * StructMember constructor.
+   *
+   * @return a typecode, defining a stucture, where a member at the
+   * <code>offset</code> position defines an array of the identical
+   * structures.
+   *
+   * @see #create_recursive_tc(String)
+   * @see #create_sequence_tc(int, TypeCode)
+   */
+  public TypeCode create_recursive_sequence_tc(int bound, int offset)
+  {
+    recordTypeCode r = new recordTypeCode(TCKind.tk_struct);
+    for (int i = 0; i < offset; i++)
+      r.add(new StructMember());
+
+    TypeCode recurs = new primitiveTypeCode(TCKind.tk_sequence);
+
+    r.add(new StructMember("", recurs, null));
+    return r;
+  }
 
   /**
    * Create a typecode which serves as a placeholder for typcode, containing
