    001package org.apache.commons.ssl.asn1;
    002
    003import java.io.IOException;
    004import java.io.InputStream;
    005
    006public class ASN1ObjectParser {
    007    private int _baseTag;
    008    private int _tagNumber;
    009
    010    private ASN1StreamParser _aIn;
    011
    012    protected ASN1ObjectParser(
    013        int baseTag,
    014        int tagNumber,
    015        InputStream contentStream) {
    016        _baseTag = baseTag;
    017        _tagNumber = tagNumber;
    018        _aIn = new ASN1StreamParser(contentStream);
    019    }
    020
    021    /**
    022     * Return the tag number for this object.
    023     *
    024     * @return the tag number.
    025     */
    026    int getTagNumber() {
    027        return _tagNumber;
    028    }
    029
    030    int getBaseTag() {
    031        return _baseTag;
    032    }
    033
    034    DEREncodable readObject()
    035        throws IOException {
    036        return _aIn.readObject();
    037    }
    038
    039    ASN1EncodableVector readVector()
    040        throws IllegalStateException {
    041        ASN1EncodableVector v = new ASN1EncodableVector();
    042        DEREncodable obj;
    043
    044        try {
    045            while ((obj = readObject()) != null) {
    046                v.add(obj.getDERObject());
    047            }
    048        }
    049        catch (IOException e) {
    050            throw new IllegalStateException(e.getMessage());
    051        }
    052
    053        return v;
    054    }
    055}