001package org.apache.commons.ssl.org.bouncycastle.asn1.esf;
002
003import java.util.Enumeration;
004
005import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Object;
006import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Primitive;
007import org.apache.commons.ssl.org.bouncycastle.asn1.ASN1Sequence;
008import org.apache.commons.ssl.org.bouncycastle.asn1.DERSequence;
009
010/**
011 * <pre>
012 * OcspListID ::=  SEQUENCE {
013 *    ocspResponses  SEQUENCE OF OcspResponsesID
014 * }
015 * </pre>
016 */
017public class OcspListID
018    extends ASN1Object
019{
020    private ASN1Sequence ocspResponses;
021
022    public static OcspListID getInstance(Object obj)
023    {
024        if (obj instanceof OcspListID)
025        {
026            return (OcspListID)obj;
027        }
028        else if (obj != null)
029        {
030            return new OcspListID(ASN1Sequence.getInstance(obj));
031        }
032
033        return null;
034    }
035
036    private OcspListID(ASN1Sequence seq)
037    {
038        if (seq.size() != 1)
039        {
040            throw new IllegalArgumentException("Bad sequence size: "
041                + seq.size());
042        }
043        this.ocspResponses = (ASN1Sequence)seq.getObjectAt(0);
044        Enumeration e = this.ocspResponses.getObjects();
045        while (e.hasMoreElements())
046        {
047            OcspResponsesID.getInstance(e.nextElement());
048        }
049    }
050
051    public OcspListID(OcspResponsesID[] ocspResponses)
052    {
053        this.ocspResponses = new DERSequence(ocspResponses);
054    }
055
056    public OcspResponsesID[] getOcspResponses()
057    {
058        OcspResponsesID[] result = new OcspResponsesID[this.ocspResponses
059            .size()];
060        for (int idx = 0; idx < result.length; idx++)
061        {
062            result[idx] = OcspResponsesID.getInstance(this.ocspResponses
063                .getObjectAt(idx));
064        }
065        return result;
066    }
067
068    public ASN1Primitive toASN1Primitive()
069    {
070        return new DERSequence(this.ocspResponses);
071    }
072}