116f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giropackage org.bouncycastle.util;
216f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro
3bdb7b3d37025690a0434040b4e0d0623d9fa74afSergio Giro/**
4bdb7b3d37025690a0434040b4e0d0623d9fa74afSergio Giro * Interface a selector from a store should conform to.
5bdb7b3d37025690a0434040b4e0d0623d9fa74afSergio Giro *
6bdb7b3d37025690a0434040b4e0d0623d9fa74afSergio Giro * @param <T> the type stored in the store.
7bdb7b3d37025690a0434040b4e0d0623d9fa74afSergio Giro */
853b61f9fe9d58034fcc7021137e92460f91b70ceSergio Giropublic interface Selector<T>
916f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro    extends Cloneable
1016f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro{
11bdb7b3d37025690a0434040b4e0d0623d9fa74afSergio Giro    /**
12bdb7b3d37025690a0434040b4e0d0623d9fa74afSergio Giro     * Match the passed in object, returning true if it would be selected by this selector, false otherwise.
13bdb7b3d37025690a0434040b4e0d0623d9fa74afSergio Giro     *
14bdb7b3d37025690a0434040b4e0d0623d9fa74afSergio Giro     * @param obj the object to be matched.
15bdb7b3d37025690a0434040b4e0d0623d9fa74afSergio Giro     * @return true if the object is a match for this selector, false otherwise.
16bdb7b3d37025690a0434040b4e0d0623d9fa74afSergio Giro     */
1753b61f9fe9d58034fcc7021137e92460f91b70ceSergio Giro    boolean match(T obj);
1816f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro
1916f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro    Object clone();
2016f9ee464b68937f45d009d9c1b0eb9b544a8deeSergio Giro}
21