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}