diff --git a/src/main/java/com/kamco/cd/kamcoback/common/utils/NameValidator.java b/src/main/java/com/kamco/cd/kamcoback/common/utils/NameValidator.java new file mode 100644 index 00000000..02dd3d16 --- /dev/null +++ b/src/main/java/com/kamco/cd/kamcoback/common/utils/NameValidator.java @@ -0,0 +1,26 @@ +package com.kamco.cd.kamcoback.common.utils; + +import com.kamco.cd.kamcoback.common.utils.interfaces.EnumValid; +import jakarta.validation.ConstraintValidator; +import jakarta.validation.ConstraintValidatorContext; +import java.util.Arrays; +import java.util.Set; +import java.util.stream.Collectors; + +public class EnumValidator implements ConstraintValidator { + + private Set acceptedValues; + + @Override + public void initialize(EnumValid constraintAnnotation) { + acceptedValues = + Arrays.stream(constraintAnnotation.enumClass().getEnumConstants()) + .map(Enum::name) + .collect(Collectors.toSet()); + } + + @Override + public boolean isValid(String value, ConstraintValidatorContext context) { + return value != null && acceptedValues.contains(value); + } +}