Added optional option for valididentifier_s_ validation.
diff --git a/src/main/java/io/mifos/core/lang/validation/CheckIdentifiers.java b/src/main/java/io/mifos/core/lang/validation/CheckIdentifiers.java
index 183b6ac..f739eb3 100644
--- a/src/main/java/io/mifos/core/lang/validation/CheckIdentifiers.java
+++ b/src/main/java/io/mifos/core/lang/validation/CheckIdentifiers.java
@@ -26,14 +26,20 @@
*/
public class CheckIdentifiers implements ConstraintValidator<ValidIdentifiers, List<String>> {
private int maximumLength = 32;
+ private boolean optional;
+
@Override
public void initialize(final ValidIdentifiers constraintAnnotation) {
maximumLength = constraintAnnotation.maxLength();
+ optional = constraintAnnotation.optional();
}
@Override
public boolean isValid(final List<String> value, final ConstraintValidatorContext context) {
+ if (optional && value == null)
+ return true;
+
return value != null && value.stream().allMatch(x -> x != null && CheckIdentifier.validate(x, maximumLength));
}
}
diff --git a/src/main/java/io/mifos/core/lang/validation/constraints/ValidIdentifiers.java b/src/main/java/io/mifos/core/lang/validation/constraints/ValidIdentifiers.java
index d881860..f4b2533 100644
--- a/src/main/java/io/mifos/core/lang/validation/constraints/ValidIdentifiers.java
+++ b/src/main/java/io/mifos/core/lang/validation/constraints/ValidIdentifiers.java
@@ -43,4 +43,5 @@
Class<? extends Payload>[] payload() default { };
int maxLength() default 32;
+ boolean optional() default false;
}
\ No newline at end of file