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 }