agent2.0版本数据适配,开发脚本策略接口
This commit is contained in:
@@ -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");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user