我正在尝试编写将消耗2 Strings
并计算MessageCategoryCodeEnum
的逻辑:
逻辑如下:
我创建了仅处理Result
相等情况的代码,但是我不知道如何处理表中的NOT EQUALS情况。
public class MessageCategory {
public static MultiKeyMap<String, MessageCategoryCodeEnum> messageCategoryMap = new MultiKeyMap<String, MessageCategoryCodeEnum>();
static {
messageCategoryMap.put("Eligibility", "F", MessageCategoryCodeEnum.FATAL);
messageCategoryMap.put("Validation", "F", MessageCategoryCodeEnum.WARNING);
messageCategoryMap.put("Eligibility", "U", MessageCategoryCodeEnum.WARNING);
messageCategoryMap.put("Validation", "U", MessageCategoryCodeEnum.WARNING);
messageCategoryMap.put("Documentation", "U", MessageCategoryCodeEnum.WARNING);
messageCategoryMap.put("Servicer Guidance", "U", MessageCategoryCodeEnum.WARNING);
messageCategoryMap.put("Observation", "U", MessageCategoryCodeEnum.WARNING);
}
}
答案 0 :(得分:0)
在我所知的地图中,实际上并没有一种实现“ not”的方法……您可以为每个类别添加一个默认值,然后在地图中找不到结果的情况下,转到设为默认值
public class MessageCategory {
private static MultiKeyMap<String, MessageCategoryCodeEnum> messageCategoryMap = new MultiKeyMap<String, MessageCategoryCodeEnum>();
// Let's say '*' is the default state
private static final String defaultResult = "*";
static {
messageCategoryMap.put("Eligibility", "F", MessageCategoryCodeEnum.FATAL);
messageCategoryMap.put("Validation", "F", MessageCategoryCodeEnum.WARNING);
messageCategoryMap.put("Eligibility", "U", MessageCategoryCodeEnum.WARNING);
messageCategoryMap.put("Validation", "U", MessageCategoryCodeEnum.WARNING);
messageCategoryMap.put("Documentation", "U", MessageCategoryCodeEnum.WARNING);
messageCategoryMap.put("Servicer Guidance", "U", MessageCategoryCodeEnum.WARNING);
messageCategoryMap.put("Observation", "U", MessageCategoryCodeEnum.WARNING);
// Set default value
messageCategoryMap.put("Eligibility", defaultResult, MessageCategoryCodeEnum.INFORMATION);
}
public static MessageCategoryCodeEnum getCodeEnum(String cat, String result) {
if (messageCategoryMap.containsKey(cat, result) {
return messageCategoryMap.get(cat, result);
} else {
return messageCategoryMap.get(cat, defaultResult);
}
}
}