io.convergence_platform.common.validations.MaximumLengthValidator Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of service-lib Show documentation
Show all versions of service-lib Show documentation
Holds the common functionality needed by all Convergence Platform-based services written in Java.
The newest version!
package io.convergence_platform.common.validations;
import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;
import java.lang.reflect.Array;
import java.util.List;
public class MaximumLengthValidator implements ConstraintValidator {
private int value;
public static void pathVariable(String value, int length, String varName) {
boolean valid = true;
if ("".equals(value)) {
valid = false;
} else {
valid = validate(value, length);
}
ValidationHelper.raiseValidationErrorForPathVariable(valid, "min_length", varName);
}
@Override
public void initialize(MaximumLength constraintAnnotation) {
ConstraintValidator.super.initialize(constraintAnnotation);
value = constraintAnnotation.value();
}
@Override
public boolean isValid(Object value, ConstraintValidatorContext context) {
return validate(value, this.value);
}
private static boolean validate(Object value, int size) {
if (value == null) {
return false;
}
if (value instanceof List>) {
return ((List>) value).size() <= size;
} else if (value.getClass().isArray()) {
return Array.getLength(value) <= size;
} else if (value instanceof CharSequence) {
return ((CharSequence) value).length() <= size;
}
return false;
}
}