package org.bouncycastle.asn1; import java.io.IOException; /** * A parser for indefinite-length application specific objects. */ public class BERApplicationSpecificParser implements ASN1ApplicationSpecificParser { private final int tag; private final ASN1StreamParser parser; BERApplicationSpecificParser(int tag, ASN1StreamParser parser) { this.tag = tag; this.parser = parser; } /** * Return the object contained in this application specific object, * @return the contained object. * @throws IOException if the underlying stream cannot be read, or does not contain an ASN.1 encoding. */ public ASN1Encodable readObject() throws IOException { return parser.readObject(); } /** * Return an in-memory, encodable, representation of the application specific object. * * @return a BERApplicationSpecific. * @throws IOException if there is an issue loading the data. */ public ASN1Primitive getLoadedObject() throws IOException { return new BERApplicationSpecific(tag, parser.readVector()); } /** * Return a BERApplicationSpecific representing this parser and its contents. * * @return a BERApplicationSpecific */ public ASN1Primitive toASN1Primitive() { try { return getLoadedObject(); } catch (IOException e) { throw new ASN1ParsingException(e.getMessage(), e); } } }