Class YmlProviderFactory
java.lang.Object
cloud.opencode.base.yml.spi.YmlProviderFactory
YAML Provider Factory - Factory for loading YAML providers via SPI
YAML 提供者工厂 - 通过 SPI 加载 YAML 提供者的工厂
This factory uses Java ServiceLoader to discover and load YAML providers.
此工厂使用 Java ServiceLoader 来发现和加载 YAML 提供者。
Features | 主要功能:
- Auto-discovery of YAML providers via Java ServiceLoader - 通过 Java ServiceLoader 自动发现 YAML 提供者
- Priority-based provider selection - 基于优先级的提供者选择
- Named provider lookup - 命名提供者查找
- Default provider override support - 默认提供者覆盖支持
Usage Examples | 使用示例:
// Get default provider (highest priority)
YmlProvider provider = YmlProviderFactory.getProvider();
// Get provider by name
YmlProvider snake = YmlProviderFactory.getProvider("snakeyaml");
// List all available providers
List<YmlProvider> all = YmlProviderFactory.getAvailableProviders();
Security | 安全性:
- Thread-safe: Yes (uses volatile + double-checked locking) - 线程安全: 是(使用 volatile + 双重检查锁定)
- Null-safe: No (throws if no provider found) - 空值安全: 否(无提供者时抛出异常)
- Since:
- JDK 25, opencode-base-yml V1.0.0
- Author:
- Leon Soo www.LeonSoo.com
- See Also:
-
Method Summary
Modifier and TypeMethodDescriptionstatic List<YmlProvider> Gets all available providers.static YmlProviderGets the default YAML provider.static YmlProvidergetProvider(String name) Gets a provider by name.static booleanChecks if any provider is available.static voidreset()Resets the default provider (forces re-discovery).static voidsetDefaultProvider(YmlProvider provider) Sets the default provider.
-
Method Details
-
getProvider
Gets the default YAML provider. 获取默认 YAML 提供者。The provider is selected by priority (highest first), then by availability.
提供者按优先级选择(最高优先),然后按可用性选择。
- Returns:
- the default provider | 默认提供者
- Throws:
OpenYmlException- if no provider is available | 如果没有可用的提供者
-
getProvider
Gets a provider by name. 按名称获取提供者。- Parameters:
name- the provider name | 提供者名称- Returns:
- the provider | 提供者
- Throws:
OpenYmlException- if provider is not found | 如果未找到提供者
-
getAvailableProviders
Gets all available providers. 获取所有可用的提供者。- Returns:
- list of providers sorted by priority | 按优先级排序的提供者列表
-
setDefaultProvider
Sets the default provider. 设置默认提供者。- Parameters:
provider- the provider to set as default | 要设置为默认的提供者
-
reset
public static void reset()Resets the default provider (forces re-discovery). 重置默认提供者(强制重新发现)。 -
hasProvider
public static boolean hasProvider()Checks if any provider is available. 检查是否有可用的提供者。- Returns:
- true if at least one provider is available | 如果至少有一个提供者可用则返回 true
-