package org.ovirt.engine.ui.uicommonweb.validation; import java.util.Arrays; import org.ovirt.engine.core.common.validation.MaskValidator; import org.ovirt.engine.ui.uicompat.ConstantsManager; public class SubnetMaskValidation implements IValidation { private final boolean isPrefixAllowed; public SubnetMaskValidation() { this.isPrefixAllowed = false; } public SubnetMaskValidation(boolean isPrefixSupported) { this.isPrefixAllowed = isPrefixSupported; } protected String getSubnetBadFormatMessage() { return isPrefixAllowed ? getBadPrefixOrNetmaskFormatMessage() : getBadNetmaskFormatMessage(); } protected String getBadPrefixOrNetmaskFormatMessage() { return ConstantsManager.getInstance() .getConstants() .thisFieldMustContainValidPrefixOrNetmask(); } protected String getBadNetmaskFormatMessage() { return ConstantsManager.getInstance() .getConstants() .thisFieldMustContainValidNetmask(); } protected String getInvalidMask() { return ConstantsManager.getInstance().getConstants().inValidNetmask(); } @Override public ValidationResult validate(Object value) { assert value == null || value instanceof String : "This validation must be run on a String!";//$NON-NLS-1$ String mask = (String) value; if (getMaskValidator().isValidNetmaskFormat(mask)) { if (!getMaskValidator().isNetmaskValid(mask)) { return failWith(getInvalidMask()); } } else { if (isPrefixAllowed) { if (!getMaskValidator().isPrefixValid(mask)) { return failWith(getBadPrefixOrNetmaskFormatMessage()); } } else { return failWith(getBadNetmaskFormatMessage()); } } return new ValidationResult(); } private ValidationResult failWith(String errorMessage) { return new ValidationResult(false, Arrays.asList(errorMessage)); } MaskValidator getMaskValidator() { return MaskValidator.getInstance(); } }