Package cloud.opencode.base.config.converter


package cloud.opencode.base.config.converter
Type Converters Package 类型转换器包

This package provides type conversion capabilities for converting string configuration values to various target types.

此包提供类型转换能力,用于将字符串配置值转换为各种目标类型。

Features | 主要功能:

  • 30+ built-in type converters - 30+内置类型转换器
  • Custom converter registration - 自定义转换器注册
  • SPI-based extension - 基于SPI的扩展
  • Thread-safe converter registry - 线程安全的转换器注册表

Supported Types | 支持的类型:

  • Primitives | 基本类型: String, int, long, double, float, boolean, BigDecimal, BigInteger
  • Date/Time | 日期时间: Duration, LocalDate, LocalTime, LocalDateTime, Instant, ZonedDateTime
  • Path/URI | 路径: Path, URI, URL
  • Enum | 枚举: All enum types (case-insensitive) - 所有枚举类型(不区分大小写)
  • Collections | 集合: List, Set, Map (comma-separated format) - List, Set, Map (逗号分隔格式)

Duration Format | Duration格式:

30s  → Duration.ofSeconds(30)
5m   → Duration.ofMinutes(5)
2h   → Duration.ofHours(2)
1d   → Duration.ofDays(1)
PT1H30M → ISO-8601 format

Usage Examples | 使用示例:

// Get default registry with all built-in converters
ConverterRegistry registry = ConverterRegistry.defaults();

// Convert values
Duration timeout = registry.convert("30s", Duration.class);
Path file = registry.convert("/tmp/config.txt", Path.class);
MyEnum status = registry.convert("active", MyEnum.class);

// Register custom converter
registry.register(InetAddress.class, s -> InetAddress.getByName(s));

SPI Extension | SPI扩展:

// META-INF/services/cloud.opencode.base.config.advanced.ConfigConverterProvider
com.example.MyConverterProvider

public class MyConverterProvider implements ConfigConverterProvider {
    public Class<?> supportedType() { return MyType.class; }
    public ConfigConverter<?> create() { return s -> new MyType(s); }
}
Since:
JDK 25, opencode-base-config V1.0.0
Author:
Leon Soo www.LeonSoo.com
See Also:
  • Class
    Description
    Configuration Type Converter Interface 配置类型转换器接口
    Type Converter Registry 类型转换器注册表
    SPI-based Converter Registry 基于SPI的转换器注册表