agent2.0版本数据适配,开发脚本策略接口

This commit is contained in:
gaoyutao
2025-09-23 18:21:05 +08:00
parent a9270027f4
commit d5f232e295
62 changed files with 5286 additions and 44 deletions
@@ -48,6 +48,64 @@ public class FieldNameConverterUtil {
return result.toString();
}
/**
* 将SNMP字段名转换为Java属性名(带指定前缀和Collect后缀)
* 示例:sysDescr -> switchSysDescrCollect
* ifHCInOctets -> switchIfHCInOctetsCollect
*
* @param snmpFieldName SNMP字段名
* @param prefix 前缀(如:switch、router等)
* @return Java属性名
*/
public static String convertSnmpToJavaProperty(String snmpFieldName, String prefix) {
return convertSnmpToJavaProperty(snmpFieldName, prefix, "Collect");
}
/**
* 将SNMP字段名转换为Java属性名(带指定前缀和自定义后缀)
* 示例:sysDescr + "switch" + "Config" -> switchSysDescrConfig
* ifHCInOctets + "router" + "Info" -> routerIfHCInOctetsInfo
*
* @param snmpFieldName SNMP字段名
* @param prefix 前缀(如:switch、router等)
* @param suffix 自定义后缀
* @return Java属性名
*/
public static String convertSnmpToJavaProperty(String snmpFieldName, String prefix, String suffix) {
if (StringUtils.isBlank(snmpFieldName)) {
return "";
}
StringBuilder result = new StringBuilder();
// 添加前缀
if (StringUtils.isNotBlank(prefix)) {
result.append(prefix);
}
// 处理SNMP字段名(将首字母大写)
result.append(StringUtils.capitalize(snmpFieldName));
// 添加后缀
if (StringUtils.isNotBlank(suffix)) {
result.append(suffix);
}
return result.toString();
}
/**
* 将SNMP字段名转换为交换机Java属性名(带switch前缀和Collect后缀)
* 示例:sysDescr -> switchSysDescrCollect
* ifHCInOctets -> switchIfHCInOctetsCollect
*
* @param snmpFieldName SNMP字段名
* @return Java属性名
*/
public static String convertToSwitchProperty(String snmpFieldName) {
return convertSnmpToJavaProperty(snmpFieldName, "switch", "Collect");
}
/**
* 将Java属性名转换回数据库字段名
* 示例:systemSwapSizeFreeCollect -> system.swap.size.free
@@ -70,4 +128,49 @@ public class FieldNameConverterUtil {
return withoutSuffix.replaceAll("(?<=[a-z])(?=[A-Z])", ".")
.toLowerCase();
}
/**
* 将带前缀和后缀的Java属性名转换回原始SNMP字段名
* 示例:switchSysDescrCollect -> sysDescr
* routerIfHCInOctetsInfo -> ifHCInOctets
*
* @param javaProperty Java属性名
* @param prefix 需要去除的前缀
* @param suffix 需要去除的后缀
* @return 原始SNMP字段名
*/
public static String convertToSnmpField(String javaProperty, String prefix, String suffix) {
if (StringUtils.isBlank(javaProperty)) {
return "";
}
// 去除后缀
String withoutSuffix = StringUtils.isNotBlank(suffix)
? StringUtils.removeEnd(javaProperty, suffix)
: javaProperty;
// 去除前缀
String withoutPrefix = StringUtils.isNotBlank(prefix)
? StringUtils.removeStart(withoutSuffix, StringUtils.capitalize(prefix))
: withoutSuffix;
// 将首字母转为小写
if (StringUtils.isNotBlank(withoutPrefix)) {
return StringUtils.uncapitalize(withoutPrefix);
}
return withoutPrefix;
}
/**
* 将交换机Java属性名转换回原始SNMP字段名
* 示例:switchSysDescrCollect -> sysDescr
* switchIfHCInOctetsCollect -> ifHCInOctets
*
* @param switchProperty 交换机Java属性名
* @return 原始SNMP字段名
*/
public static String convertFromSwitchProperty(String switchProperty) {
return convertToSnmpField(switchProperty, "switch", "Collect");
}
}