package org.ovirt.engine.core.common.validation; import javax.validation.ConstraintValidator; import javax.validation.ConstraintValidatorContext; import org.ovirt.engine.core.common.errors.EngineMessage; import org.ovirt.engine.core.common.validation.ValidatorConstraint.ValidatorConstraintArgsFormatValue; import org.ovirt.engine.core.common.validation.annotation.Mask; public class MaskConstraint implements ConstraintValidator<Mask, String> { @Override public void initialize(Mask constraintAnnotation) { } @Override public boolean isValid(String mask, ConstraintValidatorContext context) { if (mask == null || mask.isEmpty()) { return true; } boolean maskFormatValidation = isMaskFormatValid(mask); ValidatorConstraintArgsFormatValue args = new ValidatorConstraintArgsFormatValue(maskFormatValidation, maskFormatValidation ? isMaskValid(mask) : false, EngineMessage.UPDATE_NETWORK_ADDR_IN_SUBNET_BAD_FORMAT.name(), EngineMessage.UPDATE_NETWORK_ADDR_IN_SUBNET_BAD_VALUE.name()); return ValidatorConstraint.getInstance().isValid(args, context, "mask");//$NON-NLS-1$ } private boolean isMaskFormatValid(String mask) { return getMaskValidator().isPrefixValid(mask) || getMaskValidator().isValidNetmaskFormat(mask); } private boolean isMaskValid(String mask) { return getMaskValidator().isPrefixValid(mask) || getMaskValidator().isNetmaskValid(mask); } MaskValidator getMaskValidator() { return MaskValidator.getInstance(); } }