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 commonPropertityMetadata = new LinkedList(); //一级属性元数据 private List firstLevelPropertityMetadata = new LinkedList(); //二级属性元数据 private List secondLevelPropertityMetadata = new LinkedList(); //三级属性元数据 private List thirdLevelPropertityMetadata = new LinkedList(); //属性分组列表 private List metadataList = new ArrayList(); public List getGroupMetadataList(String group_id){ List groupMetadataList = new LinkedList(); 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 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 dataList = new ArrayList(); 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 tempList = (List)((Map)cacheMap.get(map.get("CMDB_CI_PRO_GROUP_ID"))).get("METADATALIST"); tempList.add(map); } } public List getMetadataList() { return metadataList; } public void setMetadataList(List 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 getCommonPropertityMetadata() { return commonPropertityMetadata; } public void setCommonPropertityMetadata(List commonPropertityMetadata) { this.commonPropertityMetadata = commonPropertityMetadata; } public List getFirstLevelPropertityMetadata() { return firstLevelPropertityMetadata; } public void setFirstLevelPropertityMetadata(List firstLevelPropertityMetadata) { this.firstLevelPropertityMetadata = firstLevelPropertityMetadata; } public List getSecondLevelPropertityMetadata() { return secondLevelPropertityMetadata; } public void setSecondLevelPropertityMetadata(List secondLevelPropertityMetadata) { this.secondLevelPropertityMetadata = secondLevelPropertityMetadata; } public List getThirdLevelPropertityMetadata() { return thirdLevelPropertityMetadata; } public void setThirdLevelPropertityMetadata(List thirdLevelPropertityMetadata) { this.thirdLevelPropertityMetadata = thirdLevelPropertityMetadata; } }