package org.ovirt.engine.ui.uicommonweb.validation; import java.util.Arrays; import org.ovirt.engine.core.common.validation.CidrValidator; import org.ovirt.engine.ui.uicompat.ConstantsManager; import org.ovirt.engine.ui.uicompat.UIConstants; public class CidrValidation implements IValidation { public static final String ILLEGAL_ARGUMENT_EXCEPTION_MESSAGE = "Argument must be a String or a null"; //$NON-NLS-1$ @Override public ValidationResult validate(Object value) { // This validation must be applied to a String if (!(value instanceof String) && value != null) { throw new IllegalArgumentException(ILLEGAL_ARGUMENT_EXCEPTION_MESSAGE); } String cidr = (String) value; ValidationResult result = new ValidationResult(); if (!getCidrValidator().isCidrFormatValid(cidr)) { failWith(result, getThisFieldMustContainCidrInFormatMsg()); } else if (!getCidrValidator().isCidrNetworkAddressValid(cidr)) { failWith(result, getCidrNotNetworkAddress()); } return result; } private void failWith(ValidationResult result, String message) { result.setSuccess(false); result.setReasons(Arrays.asList(message)); return; } protected UIConstants getUiConstants() { return getConstantsManager().getConstants(); } protected ConstantsManager getConstantsManager() { return ConstantsManager.getInstance(); } protected String getCidrNotNetworkAddress() { return getUiConstants().cidrNotNetworkAddress(); } protected String getThisFieldMustContainCidrInFormatMsg() { return getUiConstants() .thisFieldMustContainCidrInFormatMsg(); } protected CidrValidator getCidrValidator() { return CidrValidator.getInstance(); } }