ByteSizeValidator.java
package com.hwhub.backend.validation;
import com.hwhub.backend.validation.annotation.ByteSize;
import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;
import java.nio.charset.StandardCharsets;
public class ByteSizeValidator implements ConstraintValidator<ByteSize, String> {
private int max;
@Override
public void initialize(ByteSize constraintAnnotation) {
this.max = constraintAnnotation.max();
}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
if (value == null) {
return true;
}
int byteLength = value.getBytes(StandardCharsets.UTF_8).length;
return byteLength <= max;
}
}