package config; import manager.STableManager; import manager.Table; import java.util.*; import java.util.stream.Collectors; @Table(name ="ComposeActivity") public class SComposeActivity implements BaseConfig { private int id; private int activityId; private int[] needItems; private int count; private int composeType; private static Map> configMap; private static Map>> itemMap; @Override public void init() throws Exception { Map> tempConfigMap = new HashMap<>(); Map>> tempItemMap = new HashMap<>(); Map config = STableManager.getConfig(SComposeActivity.class); for(SComposeActivity activity : config.values()){ if(tempConfigMap.containsKey(activity.getActivityId())){ tempConfigMap.get(activity.getActivityId()).put(activity.getComposeType(),activity); List list = Arrays.stream( activity.getNeedItems() ).boxed().collect(Collectors.toList()); tempItemMap.get(activity.getActivityId()).put(activity.getComposeType(),list); }else{ Map map1 = new HashMap<>(); map1.put(activity.getComposeType(),activity); tempConfigMap.put(activity.getActivityId(),map1); Map> map2 = new HashMap<>(); List list = Arrays.stream( activity.getNeedItems() ).boxed().collect(Collectors.toList()); // List list = new ArrayList<>(); // for(int i : activity.getNeedItems()[0]){ // list.add(i); // } map2.put(activity.getComposeType(),list); tempItemMap.put(activity.getActivityId(),map2); } } if(configMap == null){ configMap = tempConfigMap; itemMap = tempItemMap; } } public static Map> getConfigMap(){ return configMap; } public static int getTypeById(int actId,int equipId){ for(Map.Entry> entry : itemMap.get(actId).entrySet()){ if(entry.getValue().contains(equipId)){ return entry.getKey(); } } return -1; } public int getId() { return id; } public void setId(int id) { this.id = id; } public int getActivityId() { return activityId; } public void setActivityId(int activityId) { this.activityId = activityId; } public int[] getNeedItems() { return needItems; } public void setNeedItems(int[] needItems) { this.needItems = needItems; } public int getCount() { return count; } public void setCount(int count) { this.count = count; } public int getComposeType() { return composeType; } public void setComposeType(int composeType) { this.composeType = composeType; } }