From 147428971be43eed90a79f3849f15000d3855390 Mon Sep 17 00:00:00 2001
From: yeg <1347747024@qq.com>
Date: 星期一, 28 九月 2026 15:15:22 +0800
Subject: [PATCH] 实现新威 7.6 直连取数与逐行接收
---
battery-device-api/src/main/java/com/battery/device/api/registry/AdapterInstanceConfig.java | 21 ++++++++++++++++++++-
1 files changed, 20 insertions(+), 1 deletions(-)
diff --git a/battery-device-api/src/main/java/com/battery/device/api/registry/AdapterInstanceConfig.java b/battery-device-api/src/main/java/com/battery/device/api/registry/AdapterInstanceConfig.java
index 389645a..fc99987 100644
--- a/battery-device-api/src/main/java/com/battery/device/api/registry/AdapterInstanceConfig.java
+++ b/battery-device-api/src/main/java/com/battery/device/api/registry/AdapterInstanceConfig.java
@@ -2,6 +2,7 @@
import java.time.ZoneId;
import java.util.Locale;
+import java.util.Map;
import java.util.Objects;
import com.battery.device.api.model.AdapterCapabilities;
@@ -14,8 +15,12 @@
int pollIntervalMs,
String timezoneId,
boolean enabled,
- AdapterCapabilities capabilities)
+ AdapterCapabilities capabilities,
+ Map<String, String> sourceConfig)
{
+ /**
+ * 来源形态配置按存储形态互不相交,只承载非敏感项;连接口令由环境变量或启动参数提供,不下沉到数据库。
+ */
public AdapterInstanceConfig
{
adapterCode = requireText(adapterCode, "adapterCode");
@@ -23,6 +28,7 @@
host = requireText(host, "host");
timezoneId = requireText(timezoneId, "timezoneId");
capabilities = Objects.requireNonNull(capabilities, "capabilities");
+ sourceConfig = sourceConfig == null ? Map.of() : Map.copyOf(sourceConfig);
if (port < 1 || port > 65535) throw new IllegalArgumentException("port must be between 1 and 65535");
if (pollIntervalMs < 1) throw new IllegalArgumentException("pollIntervalMs must be positive");
ZoneId.of(timezoneId);
@@ -30,6 +36,19 @@
throw new IllegalArgumentException("MVP adapter must support discovery and remain read-only");
}
+ /** 兼容不含来源形态配置的既有装配。 */
+ public AdapterInstanceConfig(String adapterCode, String adapterType, String host, int port, int pollIntervalMs,
+ String timezoneId, boolean enabled, AdapterCapabilities capabilities)
+ {
+ this(adapterCode, adapterType, host, port, pollIntervalMs, timezoneId, enabled, capabilities, Map.of());
+ }
+
+ /** 读取来源形态的非敏感配置项;缺少该项时返回空值,是否必需由适配器决定。 */
+ public String sourceOption(String key)
+ {
+ return sourceConfig.get(key);
+ }
+
private static String requireText(String value, String field)
{
String normalized = Objects.requireNonNull(value, field).trim();
--
Gitblit v1.7.1