package org.spongycastle.asn1; import java.io.IOException; public class BERTaggedObjectParser implements ASN1TaggedObjectParser { private boolean _constructed; private int _tagNumber; private ASN1StreamParser _parser; BERTaggedObjectParser( boolean constructed, int tagNumber, ASN1StreamParser parser) { _constructed = constructed; _tagNumber = tagNumber; _parser = parser; } public boolean isConstructed() { return _constructed; } public int getTagNo() { return _tagNumber; } public ASN1Encodable getObjectParser( int tag, boolean isExplicit) throws IOException { if (isExplicit) { if (!_constructed) { throw new IOException("Explicit tags must be constructed (see X.690 8.14.2)"); } return _parser.readObject(); } return _parser.readImplicit(_constructed, tag); } public ASN1Primitive getLoadedObject() throws IOException { return _parser.readTaggedObject(_constructed, _tagNumber); } public ASN1Primitive toASN1Primitive() { try { return this.getLoadedObject(); } catch (IOException e) { throw new ASN1ParsingException(e.getMessage()); } } }