content: package local.org.bouncycastle.asn1;
  
  import java.io.IOException;
  import java.util.Enumeration;
  
  public class BERSet
      extends ASN1Set
  {
      /**
       * create an empty sequence
       */
      public BERSet()
      {
      }
  
      /**
       * @param obj - a single object that makes up the set.
       */
      public BERSet(
          ASN1Encodable obj)
      {
          super(obj);
      }
  
      /**
       * @param v - a vector of objects making up the set.
       */
      public BERSet(
          ASN1EncodableVector v)
      {
          super(v, false);
      }
  
      /**
       * create a set from an array of objects.
       */
      public BERSet(
          ASN1Encodable[]   a)
      {
          super(a, false);
      }
  
      int encodedLength()
          throws IOException
      {
          int length = 0;
          for (Enumeration e = getObjects(); e.hasMoreElements();)
          {
              length += ((ASN1Encodable)e.nextElement()).toASN1Primitive().encodedLength();
          }
  
          return 2 + length + 2;
      }
  
      /*
       */
      void encode(
          ASN1OutputStream out)
          throws IOException
      {
          out.write(BERTags.SET | BERTags.CONSTRUCTED);
          out.write(0x80);
  
          Enumeration e = getObjects();
          while (e.hasMoreElements())
          {
              out.writeObject((ASN1Encodable)e.nextElement());
          }
  
          out.write(0x00);
          out.write(0x00);
      }
  }
  