package org.bouncycastle.asn1; import java.io.IOException; /** * Parser for indefinite-length SEQUENCEs. */ public class BERSequenceParser implements ASN1SequenceParser { private ASN1StreamParser _parser; BERSequenceParser(ASN1StreamParser parser) { this._parser = parser; } /** * Read the next object in the SEQUENCE. * * @return the next object in the SEQUENCE, null if there are no more. * @throws IOException if there is an issue reading the underlying stream. */ public ASN1Encodable readObject() throws IOException { return _parser.readObject(); } /** * Return an in-memory, encodable, representation of the SEQUENCE. * * @return a BERSequence. * @throws IOException if there is an issue loading the data. */ public ASN1Primitive getLoadedObject() throws IOException { return new BERSequence(_parser.readVector()); } /** * Return an BERSequence representing this parser and its contents. * * @return an BERSequence */ public ASN1Primitive toASN1Primitive() { try { return getLoadedObject(); } catch (IOException e) { throw new IllegalStateException(e.getMessage()); } } }