Attributes.java revision a198e1ecc615e26a167d0f2dca9fa7e5fc62de10
1package org.bouncycastle.asn1.cms;
2
3import org.bouncycastle.asn1.ASN1EncodableVector;
4import org.bouncycastle.asn1.ASN1Object;
5import org.bouncycastle.asn1.ASN1Primitive;
6import org.bouncycastle.asn1.ASN1Set;
7import org.bouncycastle.asn1.DLSet;
8
9public class Attributes
10    extends ASN1Object
11{
12    private ASN1Set attributes;
13
14    private Attributes(ASN1Set set)
15    {
16        attributes = set;
17    }
18
19    public Attributes(ASN1EncodableVector v)
20    {
21        attributes = new DLSet(v);
22    }
23
24    public static Attributes getInstance(Object obj)
25    {
26        if (obj instanceof Attributes)
27        {
28            return (Attributes)obj;
29        }
30        else if (obj != null)
31        {
32            return new Attributes(ASN1Set.getInstance(obj));
33        }
34
35        return null;
36    }
37
38    public Attribute[] getAttributes()
39    {
40        Attribute[] rv = new Attribute[attributes.size()];
41
42        for (int i = 0; i != rv.length; i++)
43        {
44            rv[i] = Attribute.getInstance(attributes.getObjectAt(i));
45        }
46
47        return rv;
48    }
49
50    /**
51     * <pre>
52     * Attributes ::=
53     *   SET SIZE(1..MAX) OF Attribute -- according to RFC 5652
54     * </pre>
55     * @return
56     */
57    public ASN1Primitive toASN1Primitive()
58    {
59        return attributes;
60    }
61}
62