package org.ovirt.engine.ui.uicommonweb.validation; import org.ovirt.engine.core.common.utils.ValidationUtils; import org.ovirt.engine.ui.uicompat.ConstantsManager; import org.ovirt.engine.ui.uicompat.UIMessages; public class KeyValueFormatValidation extends RegexValidation { private ConstantsManager constantsManager = ConstantsManager.getInstance(); private final boolean emptyStringAllowed; public KeyValueFormatValidation() { this(false); } public KeyValueFormatValidation(boolean emptyStringAllowed) { this(ConstantsManager.getInstance(), emptyStringAllowed); } /*** * For test, can't spy as trying to call * {@link org.ovirt.engine.ui.uicommonweb.validation.KeyValueFormatValidation#constantsManager} from constructor */ KeyValueFormatValidation(ConstantsManager constantsManager) { this(constantsManager, false); } /*** * For test, can't spy as trying to call * {@link org.ovirt.engine.ui.uicommonweb.validation.KeyValueFormatValidation#constantsManager} from constructor */ KeyValueFormatValidation(ConstantsManager constantsManager, boolean emptyStringAllowed) { this.constantsManager = constantsManager; this.emptyStringAllowed = emptyStringAllowed; final String expression = calculateExpression(); final String errorMessage = calculateErrorMessage(); init(expression, errorMessage); } private String calculateExpression() { return emptyStringAllowed ? ValidationUtils.KEY_EQUALS_VALUE_SPACE_SEPARATED.concat("|").concat(ValidationUtils.EMPTY_STRING) : //$NON-NLS-1$ ValidationUtils.KEY_EQUALS_VALUE_SPACE_SEPARATED; } private void init(String expression, String message) { setExpression(expression); setMessage(message); } private String calculateErrorMessage() { return emptyStringAllowed ? getMessages().emptyOrValidKeyValueFormatMessage(getKeyValueFormatMessage()) : getMessages().customPropertiesValuesShouldBeInFormatReason(getKeyValueFormatMessage()); } private String getKeyValueFormatMessage() { return getMessages().keyValueFormat(); } private UIMessages getMessages() { return constantsManager.getMessages(); } }