Вы можете сделать ваше отображение статичным, используя перечисления.Первый элемент - это интерфейс для получения цвета по умолчанию:
public interface ColorMapper {
Color defaultValue();
}
Перечисление цветов:
public enum Color {
RED, GREEN, YELLOW
}
и статическое сопоставление между вашими исходными значениями и значениями по умолчанию:
public enum Status implements ColorMapper {
AT_RISK("At Risk") {
@Override
public Color defaultValue() {
return Color.RED;
}
},
ON_TRACK("On Track") {
@Override
public Color defaultValue() {
return Color.GREEN;
}
},
NEEDS_ATTENTION("Needs Attention") {
@Override
public Color defaultValue() {
return Color.YELLOW;
}
};
private String code;
Status(String code) {
this.code = code;
}
public String getCode() {
return code;
}
}
Это отображение статично и довольно ясно в любой момент.Другой вариант - создать Map<String,String>
, где будет сохраняться соответствие между значениями базы данных и значениями по умолчанию:
@Service
public class MyService{
private static final Map<String,String> defaultMappingValues;
public MyService(){
defaultMappingValues.put("At Risk", "RED");
defaultMappingValues.put("On Track", "Green");
defaultMappingValues.put("Needs Attention","Yellow");
}
}
, и когда вам потребуется значение по умолчанию для At Risk
, вы будете вызывать
defaultMappingValues.get("At Risk");