package org.bouncycastle.asn1;

import java.io.IOException;
import java.io.InputStream;

public class BERTaggedObjectParser
    implements ASN1TaggedObjectParser
{
    private boolean _constructed;
    private int _tagNumber;
    private ASN1StreamParser _parser;

    
Deprecated:
/** * @deprecated */
protected BERTaggedObjectParser( int baseTag, int tagNumber, InputStream contentStream) { this((baseTag & DERTags.CONSTRUCTED) != 0, tagNumber, new ASN1StreamParser(contentStream)); } BERTaggedObjectParser( boolean constructed, int tagNumber, ASN1StreamParser parser) { _constructed = constructed; _tagNumber = tagNumber; _parser = parser; } public boolean isConstructed() { return _constructed; } public int getTagNo() { return _tagNumber; } public DEREncodable 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 DERObject getLoadedObject() throws IOException { return _parser.readTaggedObject(_constructed, _tagNumber); } public DERObject getDERObject() { try { return this.getLoadedObject(); } catch (IOException e) { throw new ASN1ParsingException(e.getMessage()); } } }