001package io.avaje.classpath.scanner;
002
003import java.util.List;
004import java.util.function.Predicate;
005
006/**
007 * Scans the class path for resources or classes.
008 */
009public interface ClassPathScanner {
010
011  /**
012   * Scan for file resources using the starting location and filter.
013   *
014   * @param location The path location from which the scan will start.
015   * @param filter   The filter used to match resources.
016   * @return The list of resources found that match our filter.
017   */
018  List<Resource> scanForResources(String location, Predicate<String> filter);
019
020  /**
021   * Scan of classes using the starting package and filter.
022   *
023   * @param location The package location from which the scan will start.
024   * @param filter   The filter used to match classes.
025   * @return The list of classes found that match our filter.
026   */
027  List<Class<?>> scanForClasses(String location, Predicate<Class<?>> filter);
028}