1package org.bouncycastle.x509;
2
3import java.util.ArrayList;
4import java.util.Collection;
5
6/**
7 * This class contains a collection for collection based <code>X509Store</code>s.
8 *
9 * @see org.bouncycastle.x509.X509Store
10 *
11 */
12public class X509CollectionStoreParameters
13    implements X509StoreParameters
14{
15    private Collection collection;
16
17    /**
18     * Constructor.
19     * <p>
20     * The collection is copied.
21     * </p>
22     *
23     * @param collection
24     *            The collection containing X.509 object types.
25     * @throws NullPointerException if <code>collection</code> is <code>null</code>.
26     */
27    public X509CollectionStoreParameters(Collection collection)
28    {
29        if (collection == null)
30        {
31            throw new NullPointerException("collection cannot be null");
32        }
33        this.collection = collection;
34    }
35
36    /**
37     * Returns a shallow clone. The returned contents are not copied, so adding
38     * or removing objects will effect this.
39     *
40     * @return a shallow clone.
41     */
42    public Object clone()
43    {
44        return new X509CollectionStoreParameters(collection);
45    }
46
47    /**
48     * Returns a copy of the <code>Collection</code>.
49     *
50     * @return The <code>Collection</code>. Is never <code>null</code>.
51     */
52    public Collection getCollection()
53    {
54        return new ArrayList(collection);
55    }
56
57    /**
58     * Returns a formatted string describing the parameters.
59     *
60     * @return a formatted string describing the parameters
61     */
62    public String toString()
63    {
64        StringBuffer sb = new StringBuffer();
65        sb.append("X509CollectionStoreParameters: [\n");
66        sb.append("  collection: " + collection + "\n");
67        sb.append("]");
68        return sb.toString();
69    }
70}
71