package seqOfComplex;

/**
 * <ul>
 * <li> <b>IDL Source</b>    "seqOfComplexTest.idl"
 * <li> <b>IDL Name</b>      ::seqOfComplex::BasicStructSeq
 * <li> <b>Repository Id</b> IDL:seqOfComplex/BasicStructSeq:1.0
 * </ul>
 * <b>IDL definition:</b>
 * <pre>
 * typedef sequence&ltseqOfComplex.BasicStruct&gt BasicStructSeq;
 * </pre>
 */
public final class BasicStructSeqHelper {
  private static org.omg.CORBA.TypeCode _type;
  private static boolean _initializing;

  private static org.omg.CORBA.ORB _orb () {
    return org.omg.CORBA.ORB.init();
  }

  public static seqOfComplex.BasicStruct[] read (final org.omg.CORBA.portable.InputStream _input) {
    seqOfComplex.BasicStruct[] result;
    final int $length0 = _input.read_long();
    result = new seqOfComplex.BasicStruct[$length0];
    for (int $counter1 = 0; $counter1 < $length0; $counter1++) {
      result[$counter1] = seqOfComplex.BasicStructHelper.read(_input);
    }
    return result;
  }

  public static void write (final org.omg.CORBA.portable.OutputStream _output, final seqOfComplex.BasicStruct[] _vis_value) {
    _output.write_long(_vis_value.length);
    for (int $counter2 = 0;  $counter2 < _vis_value.length; $counter2++) {
      seqOfComplex.BasicStructHelper.write(_output, _vis_value[$counter2]);
    }
  }

  public static void insert (final org.omg.CORBA.Any any, final seqOfComplex.BasicStruct[] _vis_value) {
    any.type(seqOfComplex.BasicStructSeqHelper.type());
    any.insert_Streamable(new seqOfComplex.BasicStructSeqHolder(_vis_value));
  }

  public static seqOfComplex.BasicStruct[] extract (final org.omg.CORBA.Any any) {
    seqOfComplex.BasicStruct[] _vis_value;
    if (any instanceof com.inprise.vbroker.CORBA.Any) {
      seqOfComplex.BasicStructSeqHolder _vis_holder = new seqOfComplex.BasicStructSeqHolder();
      ((com.inprise.vbroker.CORBA.Any)any).extract_Streamable(_vis_holder);
      _vis_value = _vis_holder.value;
    } else {
      _vis_value = seqOfComplex.BasicStructSeqHelper.read(any.create_input_stream());
    }
    return _vis_value;
  }

  public static org.omg.CORBA.TypeCode type () {
    if (_type == null) {
      synchronized (org.omg.CORBA.TypeCode.class) {
        if (_type == null) {
          org.omg.CORBA.TypeCode originalType = _orb().create_sequence_tc(0, seqOfComplex.BasicStructHelper.type());
          _type = _orb().create_alias_tc(id(), "BasicStructSeq", originalType);
        }
      }
    }
    return _type;
  }

  public static java.lang.String id () {
    return "IDL:seqOfComplex/BasicStructSeq:1.0";
  }
}
