BusinessUnitCodeValidator.java
package com.fulfilment.application.monolith.exception.validation;
import jakarta.validation.ConstraintValidator;
import jakarta.validation.ConstraintValidatorContext;
import java.util.regex.Pattern;
/** Validates warehouse business unit codes against the canonical format. */
public class BusinessUnitCodeValidator
implements ConstraintValidator<ValidBusinessUnitCode, String> {
private static final Pattern VALID_CODE =
Pattern.compile("^[A-Z0-9][A-Z0-9.\\-_]{2,19}$");
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
if (value == null || value.isBlank()) {
return false;
}
return VALID_CODE.matcher(value).matches();
}
}