Class PlaceholderResolver

java.lang.Object
cloud.opencode.base.yml.placeholder.PlaceholderResolver

public final class PlaceholderResolver extends Object
Placeholder Resolver - Resolves ${...} placeholders in text 占位符解析器 - 解析文本中的 ${...} 占位符

This class resolves placeholders like ${key} and ${key:default} in strings.

此类解析字符串中的 ${key} 和 ${key:default} 形式的占位符。

Features | 主要功能:

  • Resolve ${key} and ${key:default} placeholders - 解析 ${key} 和 ${key:default} 占位符
  • Multiple property sources (system, env, custom maps) - 多属性源(系统、环境变量、自定义映射)
  • Circular reference detection - 循环引用检测
  • Configurable prefix, suffix, and strict mode - 可配置前缀、后缀和严格模式

Usage Examples | 使用示例:

// Create resolver with properties
PlaceholderResolver resolver = PlaceholderResolver.create()
    .withSystemProperties()
    .withEnvironmentVariables();

// Resolve placeholders
String resolved = resolver.resolve("Server: ${SERVER_HOST:localhost}");

// Resolve in YAML
String yaml = resolver.resolveYaml("""
    server:
      port: ${SERVER_PORT:8080}
    """);

Security | 安全性:

  • Thread-safe: Yes (immutable after construction, resolver functions should be thread-safe) - 线程安全: 是(构建后不可变,解析函数应线程安全)
  • Null-safe: Yes (null input returns null) - 空值安全: 是(空输入返回 null)
Since:
JDK 25, opencode-base-yml V1.0.0
Author:
Leon Soo www.LeonSoo.com
See Also:
  • Method Details

    • create

      public static PlaceholderResolver create()
      Creates a new placeholder resolver. 创建新的占位符解析器。
      Returns:
      a new resolver | 新解析器
    • create

      public static PlaceholderResolver create(Map<String,String> properties)
      Creates a resolver with the given properties. 使用给定属性创建解析器。
      Parameters:
      properties - the properties | 属性
      Returns:
      a new resolver | 新解析器
    • builder

      public static PlaceholderResolver.Builder builder()
      Creates a resolver builder. 创建解析器构建器。
      Returns:
      a new builder | 新构建器
    • resolve

      public String resolve(String text)
      Resolves placeholders in text. 解析文本中的占位符。
      Parameters:
      text - the text | 文本
      Returns:
      the resolved text | 解析后的文本
    • resolveYaml

      public String resolveYaml(String yaml)
      Resolves placeholders in YAML string. 解析 YAML 字符串中的占位符。
      Parameters:
      yaml - the YAML string | YAML 字符串
      Returns:
      the resolved YAML | 解析后的 YAML
    • resolveMap

      public Map<String,Object> resolveMap(Map<String,Object> map)
      Resolves placeholders in Map values. 解析 Map 值中的占位符。
      Parameters:
      map - the map | Map
      Returns:
      the resolved map | 解析后的 Map