Class ConverterRegistry

java.lang.Object
cloud.opencode.base.config.converter.ConverterRegistry
Direct Known Subclasses:
SpiConverterRegistry

public class ConverterRegistry extends Object
Type Converter Registry 类型转换器注册表

Manages type converters for configuration value conversion with built-in support for 30+ common types.

管理配置值转换的类型转换器,内置支持30多种常用类型。

Features | 主要功能:

  • 30+ built-in type converters - 30多个内置类型转换器
  • Custom converter registration - 自定义转换器注册
  • Automatic enum conversion - 自动枚举转换
  • Thread-safe concurrent access - 线程安全的并发访问

Usage Examples | 使用示例:

// Use defaults
ConverterRegistry registry = ConverterRegistry.defaults();

// Convert values
Integer port = registry.convert("8080", Integer.class);
Duration timeout = registry.convert("30s", Duration.class);
LocalDate date = registry.convert("2025-01-01", LocalDate.class);

// Register custom converter
registry.register(InetAddress.class, InetAddress::getByName);
InetAddress addr = registry.convert("127.0.0.1", InetAddress.class);

Supported Types | 支持的类型:

  • Primitives: int, long, double, float, boolean, etc.
  • Numbers: Integer, Long, BigDecimal, BigInteger
  • Time: Duration, LocalDate, LocalTime, LocalDateTime, Instant, ZonedDateTime
  • Path: Path, URI, URL
  • Collections: List, Set, Map (via separate converters)
  • Enums: Automatic conversion

Performance | 性能特性:

  • Time complexity: O(1) for conversion - 时间复杂度: 转换为O(1)
  • Thread-safe concurrent map - 线程安全的并发映射

Security | 安全性:

  • Thread-safe: Yes - 线程安全: 是
  • Null-safe conversions - 空值安全转换
Since:
JDK 25, opencode-base-config V1.0.0
Author:
Leon Soo www.LeonSoo.com
See Also:
  • Constructor Details

    • ConverterRegistry

      public ConverterRegistry()
  • Method Details

    • defaults

      public static ConverterRegistry defaults()
      Create default converter registry 创建默认转换器注册表
      Returns:
      registry with built-in converters | 带内置转换器的注册表
    • register

      public <T> void register(Class<T> type, ConfigConverter<T> converter)
      Register type converter 注册类型转换器
      Type Parameters:
      T - target type | 目标类型
      Parameters:
      type - target class | 目标类
      converter - converter function | 转换器函数
    • convert

      public <T> T convert(String value, Class<T> type)
      Convert string value to target type 将字符串值转换为目标类型
      Type Parameters:
      T - target type | 目标类型
      Parameters:
      value - string value | 字符串值
      type - target class | 目标类
      Returns:
      converted value | 转换后的值
      Throws:
      OpenConfigException - if conversion fails | 如果转换失败
    • hasConverter

      public boolean hasConverter(Class<?> type)
      Check if converter exists for type 检查类型是否存在转换器
      Parameters:
      type - target class | 目标类
      Returns:
      true if converter exists | 如果转换器存在返回true