1package org.bouncycastle.asn1;
2
3import java.io.IOException;
4
5public class DERExternalParser
6    implements DEREncodable, InMemoryRepresentable
7{
8    private ASN1StreamParser _parser;
9
10    /**
11     *
12     */
13    public DERExternalParser(ASN1StreamParser parser)
14    {
15        this._parser = parser;
16    }
17
18    public DEREncodable readObject()
19        throws IOException
20    {
21        return _parser.readObject();
22    }
23
24    public DERObject getLoadedObject()
25        throws IOException
26    {
27        try
28        {
29            return new DERExternal(_parser.readVector());
30        }
31        catch (IllegalArgumentException e)
32        {
33            throw new ASN1Exception(e.getMessage(), e);
34        }
35    }
36
37    public DERObject getDERObject()
38    {
39        try
40        {
41            return getLoadedObject();
42        }
43        catch (IOException ioe)
44        {
45            throw new ASN1ParsingException("unable to get DER object", ioe);
46        }
47        catch (IllegalArgumentException ioe)
48        {
49            throw new ASN1ParsingException("unable to get DER object", ioe);
50        }
51    }
52}
53