[SDC] Onboarding 1710 rebase.
[sdc.git] / openecomp-be / api / openecomp-sdc-rest-webapp / vendor-software-products-rest / vendor-software-products-rest-types / src / main / java / org / openecomp / sdcrests / vendorsoftwareproducts / types / validation / StringValidator.java
1 package org.openecomp.sdcrests.vendorsoftwareproducts.types.validation;
2
3 import java.util.ArrayList;
4 import java.util.List;
5 import javax.validation.ConstraintValidator;
6 import javax.validation.ConstraintValidatorContext;
7
8 public class StringValidator implements ConstraintValidator<ValidateString, String> {
9
10   private List<String> valueList;
11   boolean isCaseSensitive;
12
13   @Override
14   public void initialize(ValidateString constraintAnnotation) {
15     valueList = new ArrayList<String>();
16     isCaseSensitive = constraintAnnotation.isCaseSensitive();
17     for (String val : constraintAnnotation.acceptedValues()) {
18       if (!isCaseSensitive) {
19         val = val.toUpperCase();
20       }
21       valueList.add(val);
22     }
23   }
24
25   @Override
26   public boolean isValid(String value, ConstraintValidatorContext context) {
27     if (!isCaseSensitive) {
28       value = value.toUpperCase();
29     }
30     if (value != null && !valueList.contains(value)) {
31       return false;
32     }
33     return true;
34   }
35
36 }