Как установить пользовательское значение / значение по умолчанию для значения, поступающего из базы данных? - PullRequest
0 голосов
/ 24 октября 2018

Как установить пользовательское значение / значение по умолчанию для значения, поступающего из базы данных?У меня есть следующие значения цветовых кодов, которые мне нужно сопоставить / установить для значений из БД.

**Values from DB**     **Default value**
At Risk -                 Red
On Track -                Green
Needs Attention -         Yellow

Пожалуйста, дайте мне знать, как настроить мой код ниже, чтобы получить ожидаемое значение o / p.

String colorStatus = userObj.setStatus();
            userCodeValue.setStatus(colorStatus);
            /*String yellowColor = "yellow";
            if(colorStatus.equalsIgnoreCase("Need Attention")){
                vlcValue.setStatus(yellowColor);
            }*/

Ответы [ 2 ]

0 голосов
/ 25 октября 2018
// color code functionality to be included
            String colorStatus = vlcObj.getColorStatus();
            vlcValue.setColortStatus(colorStatus);
            String yellowColor = "yellow";
            String greenColor = "green";
            String redColor = "red";

            if(colorStatus.equalsIgnoreCase("NeedsAttention")){
                vlcValue.setColortStatus(yellowColor);
            }
            if(colorStatus.equalsIgnoreCase("AtRisk")){
                vlcValue.setColortStatus(redColor);
            }
            if(colorStatus.equalsIgnoreCase("None")){
                vlcValue.setColortStatus(greenColor);
            }if(colorStatus.equalsIgnoreCase("OnTrack")){
                vlcValue.setColortStatus(greenColor);
            }
0 голосов
/ 24 октября 2018

Вы можете сделать ваше отображение статичным, используя перечисления.Первый элемент - это интерфейс для получения цвета по умолчанию:

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");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...