package cn.ksource.web.service.cmdb;
|
|
import java.util.ArrayList;
|
import java.util.HashMap;
|
import java.util.LinkedHashMap;
|
import java.util.LinkedList;
|
import java.util.List;
|
import java.util.Map;
|
|
import org.apache.commons.lang.StringUtils;
|
|
import cn.ksource.core.util.ConvertUtil;
|
|
/**
|
* CI属性元数据
|
*/
|
public class CIPropertityMetadata {
|
|
private Integer level;
|
|
//所属分类信息
|
private Map catetory = new HashMap();
|
|
|
//通用属性元数据
|
private List<Map> commonPropertityMetadata = new LinkedList<Map>();
|
|
//一级属性元数据
|
private List<Map> firstLevelPropertityMetadata = new LinkedList<Map>();
|
//二级属性元数据
|
private List<Map> secondLevelPropertityMetadata = new LinkedList<Map>();
|
//三级属性元数据
|
private List<Map> thirdLevelPropertityMetadata = new LinkedList<Map>();
|
|
//属性分组列表
|
private List<Map> metadataList = new ArrayList<Map>();
|
|
public List<Map> getGroupMetadataList(String group_id){
|
|
List<Map> groupMetadataList = new LinkedList<Map>();
|
|
Map metadataMap = new HashMap();
|
|
for (Map map2 : metadataList) {
|
metadataMap.put(map2.get("ID"), map2);
|
}
|
|
Map cacheMap = new HashMap();
|
Map groupMap = new LinkedHashMap();
|
|
|
for (Map map : secondLevelPropertityMetadata) {
|
initGroup(groupMetadataList, metadataMap, cacheMap, map,group_id);
|
}
|
for (Map map : thirdLevelPropertityMetadata) {
|
initGroup(groupMetadataList, metadataMap, cacheMap, map,group_id);
|
}
|
return groupMetadataList;
|
}
|
|
|
private void initGroup(List<Map> groupMetadataList, Map metadataMap,Map cacheMap, Map map,String group_id) {
|
if (StringUtils.isNotBlank(group_id) && !StringUtils.equalsIgnoreCase(group_id, ConvertUtil.obj2Str(map.get("CMDB_CI_PRO_GROUP_ID")))) {
|
return;
|
}
|
if (!cacheMap.containsKey(map.get("CMDB_CI_PRO_GROUP_ID"))) {
|
List<Map> dataList = new ArrayList<Map>();
|
dataList.add(map);
|
Map metadata = (Map)metadataMap.get(map.get("CMDB_CI_PRO_GROUP_ID"));
|
if (metadata != null) {
|
groupMetadataList.add(metadata);
|
metadata.put("METADATALIST", dataList);
|
cacheMap.put(map.get("CMDB_CI_PRO_GROUP_ID"),metadata);
|
}
|
} else {
|
List<Map> tempList = (List<Map>)((Map)cacheMap.get(map.get("CMDB_CI_PRO_GROUP_ID"))).get("METADATALIST");
|
tempList.add(map);
|
}
|
}
|
|
|
public List<Map> getMetadataList() {
|
return metadataList;
|
}
|
|
public void setMetadataList(List<Map> metadataList) {
|
this.metadataList = metadataList;
|
}
|
|
public Map getCatetory() {
|
return catetory;
|
}
|
|
public void setCatetory(Map catetory) {
|
this.catetory = catetory;
|
}
|
|
public Integer getLevel() {
|
return level;
|
}
|
|
public void setLevel(Integer level) {
|
this.level = level;
|
}
|
|
public List<Map> getCommonPropertityMetadata() {
|
return commonPropertityMetadata;
|
}
|
|
public void setCommonPropertityMetadata(List<Map> commonPropertityMetadata) {
|
this.commonPropertityMetadata = commonPropertityMetadata;
|
}
|
|
public List<Map> getFirstLevelPropertityMetadata() {
|
return firstLevelPropertityMetadata;
|
}
|
|
public void setFirstLevelPropertityMetadata(List<Map> firstLevelPropertityMetadata) {
|
this.firstLevelPropertityMetadata = firstLevelPropertityMetadata;
|
}
|
|
public List<Map> getSecondLevelPropertityMetadata() {
|
return secondLevelPropertityMetadata;
|
}
|
|
public void setSecondLevelPropertityMetadata(List<Map> secondLevelPropertityMetadata) {
|
this.secondLevelPropertityMetadata = secondLevelPropertityMetadata;
|
}
|
|
public List<Map> getThirdLevelPropertityMetadata() {
|
return thirdLevelPropertityMetadata;
|
}
|
|
public void setThirdLevelPropertityMetadata(List<Map> thirdLevelPropertityMetadata) {
|
this.thirdLevelPropertityMetadata = thirdLevelPropertityMetadata;
|
}
|
}
|