package org.bouncycastle.cert.dane;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import org.bouncycastle.util.CollectionStore;
import org.bouncycastle.util.Selector;
import org.bouncycastle.util.Store;
import org.bouncycastle.util.StoreException;

Class storing DANEEntry objects.
/** * Class storing DANEEntry objects. */
public class DANEEntryStore implements Store { private final Map entries; DANEEntryStore(List entries) { Map entryMap = new HashMap(); for (Iterator it = entries.iterator(); it.hasNext();) { DANEEntry entry = (DANEEntry)it.next(); entryMap.put(entry.getDomainName(), entry); } this.entries = Collections.unmodifiableMap(entryMap); }
Return a collection of entries matching the passed in selector.
Params:
  • selector – the selector to validate entries against.
Throws:
Returns:a possibly empty collection of matched entries.
/** * Return a collection of entries matching the passed in selector. * * @param selector the selector to validate entries against. * @return a possibly empty collection of matched entries. * @throws StoreException in case of an underlying issue. */
public Collection getMatches(Selector selector) throws StoreException { if (selector == null) { return entries.values(); } List results = new ArrayList(); for (Iterator it = entries.values().iterator(); it.hasNext();) { Object next = it.next(); if (selector.match(next)) { results.add(next); } } return Collections.unmodifiableList(results); }
Return a Store of X509CertificateHolder objects representing all the certificates associated with entries in the store.
Returns:a Store of X509CertificateHolder.
/** * Return a Store of X509CertificateHolder objects representing all the certificates associated with * entries in the store. * * @return a Store of X509CertificateHolder. */
public Store toCertificateStore() { Collection col = this.getMatches(null); List certColl = new ArrayList(col.size()); for (Iterator it = col.iterator(); it.hasNext();) { DANEEntry entry = (DANEEntry)it.next(); certColl.add(entry.getCertificate()); } return new CollectionStore(certColl); } }