Class ResourceScanner

java.lang.Object
cloud.opencode.base.reflect.scan.ResourceScanner

public final class ResourceScanner extends Object
Resource Scanner 资源扫描器

Scans for resources in the classpath.

扫描类路径中的资源。

Features | 主要功能:

  • Extension filtering - 扩展名过滤
  • Pattern matching - 模式匹配
  • Package filtering - 包过滤

Usage Examples | 使用示例:

List<ResourceInfo> xmlFiles = ResourceScanner.from(classPath)
    .withExtension("xml")
    .inPackage("com.example")
    .scan();

Security | 安全性:

  • Thread-safe: No (mutable builder state) - 线程安全: 否(可变构建器状态)
  • Null-safe: No (class path must be non-null) - 空值安全: 否(类路径须非空)
Since:
JDK 25, opencode-base-reflect V1.0.0
Author:
Leon Soo www.LeonSoo.com
See Also:
  • Method Details

    • from

      public static ResourceScanner from(ClassPath classPath)
      Creates a ResourceScanner from ClassPath 从ClassPath创建ResourceScanner
      Parameters:
      classPath - the ClassPath | ClassPath
      Returns:
      the scanner | 扫描器
    • from

      public static ResourceScanner from(ClassLoader classLoader)
      Creates a ResourceScanner from ClassLoader 从ClassLoader创建ResourceScanner
      Parameters:
      classLoader - the class loader | 类加载器
      Returns:
      the scanner | 扫描器
    • create

      public static ResourceScanner create()
      Creates a ResourceScanner using context ClassLoader 使用上下文ClassLoader创建ResourceScanner
      Returns:
      the scanner | 扫描器
    • excludeClasses

      public ResourceScanner excludeClasses(boolean exclude)
      Sets whether to exclude class files 设置是否排除类文件
      Parameters:
      exclude - whether to exclude | 是否排除
      Returns:
      this scanner | 此扫描器
    • includeClasses

      public ResourceScanner includeClasses()
      Includes class files in results 在结果中包含类文件
      Returns:
      this scanner | 此扫描器
    • withExtension

      public ResourceScanner withExtension(String extension)
      Filters by extension 按扩展名过滤
      Parameters:
      extension - the extension (without dot) | 扩展名(不含点)
      Returns:
      this scanner | 此扫描器
    • withExtensions

      public ResourceScanner withExtensions(String... extensions)
      Filters by multiple extensions 按多个扩展名过滤
      Parameters:
      extensions - the extensions | 扩展名
      Returns:
      this scanner | 此扫描器
    • inPackage

      public ResourceScanner inPackage(String packageName)
      Filters by package 按包过滤
      Parameters:
      packageName - the package name | 包名
      Returns:
      this scanner | 此扫描器
    • inPackages

      public ResourceScanner inPackages(String... packageNames)
      Filters by multiple packages 按多个包过滤
      Parameters:
      packageNames - the package names | 包名
      Returns:
      this scanner | 此扫描器
    • matching

      public ResourceScanner matching(String pattern)
      Filters by name pattern (regex) 按名称模式过滤(正则表达式)
      Parameters:
      pattern - the regex pattern | 正则表达式模式
      Returns:
      this scanner | 此扫描器
    • nameContains

      public ResourceScanner nameContains(String substring)
      Filters by name containing 按名称包含过滤
      Parameters:
      substring - the substring | 子字符串
      Returns:
      this scanner | 此扫描器
    • nameStartsWith

      public ResourceScanner nameStartsWith(String prefix)
      Filters by name prefix 按名称前缀过滤
      Parameters:
      prefix - the prefix | 前缀
      Returns:
      this scanner | 此扫描器
    • nameEndsWith

      public ResourceScanner nameEndsWith(String suffix)
      Filters by name suffix 按名称后缀过滤
      Parameters:
      suffix - the suffix | 后缀
      Returns:
      this scanner | 此扫描器
    • filter

      public ResourceScanner filter(Predicate<ResourceInfo> predicate)
      Adds a custom filter 添加自定义过滤器
      Parameters:
      predicate - the predicate | 谓词
      Returns:
      this scanner | 此扫描器
    • scan

      public Set<ResourceInfo> scan()
      Scans and returns matching resources 扫描并返回匹配的资源
      Returns:
      set of ResourceInfo | ResourceInfo集合
    • stream

      public Stream<ResourceInfo> stream()
      Scans and returns as stream 扫描并返回为流
      Returns:
      stream of ResourceInfo | ResourceInfo流
    • toList

      public List<ResourceInfo> toList()
      Scans and returns as list 扫描并返回为列表
      Returns:
      list of ResourceInfo | ResourceInfo列表
    • findProperties

      public Set<ResourceInfo> findProperties()
      Finds properties files 查找属性文件
      Returns:
      set of ResourceInfo | ResourceInfo集合
    • findXml

      public Set<ResourceInfo> findXml()
      Finds XML files 查找XML文件
      Returns:
      set of ResourceInfo | ResourceInfo集合
    • findJson

      public Set<ResourceInfo> findJson()
      Finds JSON files 查找JSON文件
      Returns:
      set of ResourceInfo | ResourceInfo集合
    • findYaml

      public Set<ResourceInfo> findYaml()
      Finds YAML files 查找YAML文件
      Returns:
      set of ResourceInfo | ResourceInfo集合