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}