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