McpdDateValidator.java
/*
* Copyright 2026 Global Crop Diversity Trust
* Licensed under the Apache License, Version 2.0
* See LICENSE file in project root folder or http://www.apache.org/licenses/LICENSE-2.0
*/
package org.genesys.spring.validation.javax;
import javax.validation.ConstraintValidator;
import javax.validation.ConstraintValidatorContext;
import org.genesys.util.MCPDUtil;
/**
* Validates that a string is either null or a valid MCPD date.
* Placeholder dates such as {@code --------} or {@code 00000000} are not valid
* because they carry no real date information.
*/
public class McpdDateValidator implements ConstraintValidator<McpdDate, String> {
@Override
public void initialize(McpdDate constraintAnnotation) {
// no-op
}
@Override
public boolean isValid(String value, ConstraintValidatorContext context) {
if (value == null) {
return true;
}
return MCPDUtil.isMcpdDate(value);
}
}