code: public SearchResult<K, I> findBy(PathSearchCriteria criteria) {
  		criteria = criteria.createCopy();
  		C context = createContext(
  			ClassFileScanConfiguration.forPaths(criteria.getPaths()).maxParallelTasksForUnit(
  				criteria.maxParallelTasksForUnit
  			), 
  			criteria
  		);
  		criteria.init(this.classHelper, context.pathMemoryClassLoader, this.memberFinder, this.pathHelper);
  		scan(context);
  		Collection<String> skippedClassesNames = context.getSkippedClassNames();
  		if (!skippedClassesNames.isEmpty()) {
  			logWarn("Skipped classes count: {}", skippedClassesNames.size());
  		}
  		return resultSupplier.apply(context);
  	}
docs: Cached search