1 package org.jadira.scanner.core.api;
2
3 import java.util.List;
4
5 public interface Resolver<T, E, A> {
6
7 /**
8 * Resolve the first match
9 * @param locator Locator to be used
10 * @param projector Projector to be used
11 * @param filter Zero or more filters to be used
12 * @return The first match
13 */
14 T resolveFirst(Locator<A> locator, Projector<E> projector, Filter<?>... filter);
15
16 /**
17 * Resolve all matches up to limit
18 * @param limit The maximum number of results to match
19 * @param locator Locator to be used
20 * @param projector Projector to be used
21 * @param filter Zero or more filters to be used
22 * @return The first match
23 */
24 List<? extends T> resolve(Integer limit, Locator<A> locator, Projector<E> projector, Filter<?>... filter);
25
26 /**
27 * Resolve all matches
28 * @param locator Locator to be used
29 * @param projector Projector to be used
30 * @param filter Zero or more filters to be used
31 * @return The first match
32 */
33 List<? extends T> resolveAll(Locator<A> locator, Projector<E> projector, Filter<?>... filter);
34 }