Home | History | Annotate | Download | only in asn1
      1 package org.bouncycastle.asn1;
      2 
      3 import java.io.IOException;
      4 
      5 /**
      6  * Parser for indefinite-length SETs.
      7  */
      8 public class BERSetParser
      9     implements ASN1SetParser
     10 {
     11     private ASN1StreamParser _parser;
     12 
     13     BERSetParser(ASN1StreamParser parser)
     14     {
     15         this._parser = parser;
     16     }
     17 
     18     /**
     19      * Read the next object in the SET.
     20      *
     21      * @return the next object in the SET, null if there are no more.
     22      * @throws IOException if there is an issue reading the underlying stream.
     23      */
     24     public ASN1Encodable readObject()
     25         throws IOException
     26     {
     27         return _parser.readObject();
     28     }
     29 
     30     /**
     31      * Return an in-memory, encodable, representation of the SET.
     32      *
     33      * @return a BERSet.
     34      * @throws IOException if there is an issue loading the data.
     35      */
     36     public ASN1Primitive getLoadedObject()
     37         throws IOException
     38     {
     39         return new BERSet(_parser.readVector());
     40     }
     41 
     42     /**
     43      * Return an BERSet representing this parser and its contents.
     44      *
     45      * @return an BERSet
     46      */
     47     public ASN1Primitive toASN1Primitive()
     48     {
     49         try
     50         {
     51             return getLoadedObject();
     52         }
     53         catch (IOException e)
     54         {
     55             throw new ASN1ParsingException(e.getMessage(), e);
     56         }
     57     }
     58 }