第一、精简枚举类
@Getter
@Setter
public enum FirstEnum {
APP_SERVICE(1,"服务","app_server"),
ASSERT(2,"资产","Asset"),
INSTANCE_NODE(3,"节点","Instancenode"),
//CLUSTER(4,"集群","app_server_cluster"),
CONFIG_INFO(5,"配置","Configinfo");
int code;
String description;
String identification;
FirstEnum(int code, String description, String identification) {
this.code = code;
this.description = description;
this.identification = identification;
}
}
第二、添加一个EnumMap类
import com.google.common.collect.Maps;
import java.util.EnumMap;
import java.util.Map;
public class TypeEnumMap {
public static EnumMap<FirstEnum, Map<String, String>> typeEnumMap = new EnumMap<>(FirstEnum.class);
static {
Map<String, String> map1 = Maps.newHashMap();
map1.put("tuxedo_app_server", "Tuxedo服务");
map1.put("microServiceRestfull_app_server", "微服务接口服务");
map1.put("weblogic_app_server", "WebLogic服务");
typeEnumMap.put(FirstEnum.APP_SERVICE, map1);
Map<String, String> map2 = Maps.newHashMap();
map2.put("Server", "服务器");
typeEnumMap.put(FirstEnum.ASSERT, map2);
Map<String, String> map3 = Maps.newHashMap();
map3.put("JDBC", "JDBC连接配置");
map3.put("manathon", "marathon_app节点定义");
map3.put("Oracle_store", "Oracle存储");
map3.put("Oracle_rac", "Oracle_rac");
map3.put("WTC", "WTC");
map3.put("wtc_exports", "wtc_exports");
map3.put("wtc_imports", "wtc_imports");
map3.put("wtc_local", "wtc_local");
map3.put("wtc_remote", "wtc_remote");
map3.put("Application", "应用服务");
map3.put("app_cluster", "应用集群");
map3.put("App_server_cluster_tuxedo","Tuxedo集群");
map3.put("App_server_cluster_weblogic","WebLogic集群");
typeEnumMap.put(FirstEnum.CONFIG_INFO,map3);
Map<String,String> map4 = Maps.newHashMap();
map4.put("HDFS","HDFS节点");
map4.put("Tuxedoserver","Tuxedo服务节点");
map4.put("weblogicconsle","weblogic控制台节点");
map4.put("weblogic","weblogic节点");
map4.put("ZooKeeper","Zookeeper节点");
map4.put("F5Info","F5负载均衡节点");
map4.put("Hbaseserver","HBase节点");
map4.put("Kafka","Kafka节点");
map4.put("marath","marathon_lb负载均衡节点");
map4.put("Oracledb","Oracle数据库节点");
map4.put("Mysqlserver","Mysql节点");
map4.put("redis","Redis节点");
map4.put("Tomcatserver","Tomcat节点");
map4.put("Othersoftware","其他软件节点");
typeEnumMap.put(FirstEnum.INSTANCE_NODE,map4);
}
}
第三步、重点了
/**
* 获取son的list
*
* @param firstEnum 枚举元素
* @return sonArrayList
*/
private ArrayList<SubAnalysisResult> getSons(FirstEnum firstEnum) {
ArrayList<SubAnalysisResult> sonArrayList = Lists.newArrayList();
Map<String, String> stringStringMap = TypeEnumMap.typeEnumMap.get(firstEnum);
for (Map.Entry<String, String> entry : stringStringMap.entrySet()) {
SubAnalysisResult subAnalysisResult = SubAnalysisResult.builder()
.id(entry.getValue())
.number(TypeNumberCache.getKey(entry.getKey()))
.healthy(TypeNumberCache.getKey(entry.getKey()))
.unHealthy(0)
.build();
sonArrayList.add(subAnalysisResult);
}
return sonArrayList;
}
将复杂业务逻辑以及多个枚举进行整合!!!