// 
// Decompiled by Procyon v0.6.0
// 

package org.bouncycastle.asn1;

import java.io.IOException;

public class DERExternalParser implements ASN1ExternalParser
{
    private ASN1StreamParser _parser;
    
    public DERExternalParser(final ASN1StreamParser parser) {
        this._parser = parser;
    }
    
    @Override
    public ASN1Encodable readObject() throws IOException {
        return this._parser.readObject();
    }
    
    @Override
    public ASN1Primitive getLoadedObject() throws IOException {
        return parse(this._parser);
    }
    
    @Override
    public ASN1Primitive toASN1Primitive() {
        try {
            return this.getLoadedObject();
        }
        catch (final IOException ex) {
            throw new ASN1ParsingException("unable to get DER object", ex);
        }
        catch (final IllegalArgumentException ex2) {
            throw new ASN1ParsingException("unable to get DER object", ex2);
        }
    }
    
    static DLExternal parse(final ASN1StreamParser asn1StreamParser) throws IOException {
        try {
            return new DLExternal(new DLSequence(asn1StreamParser.readVector()));
        }
        catch (final IllegalArgumentException ex) {
            throw new ASN1Exception(ex.getMessage(), ex);
        }
    }
}
