package org.ovirt.engine.ui.uicommonweb.validation; import org.ovirt.engine.core.compat.Regex; @SuppressWarnings("unused") public class RegexValidation implements IValidation { protected static final String EMPTY_STRING = ""; private String privateExpression; public String getExpression() { return privateExpression; } public void setExpression(String value) { privateExpression = value; } private String privateMessage; public String getMessage() { return privateMessage; } public void setMessage(String value) { privateMessage = value; } private boolean privateIsNegate; public boolean getIsNegate() { return privateIsNegate; } public void setIsNegate(boolean value) { privateIsNegate = value; } public RegexValidation() { } public RegexValidation(String expression, String message) { setExpression(expression); setMessage(message); } @Override public ValidationResult validate(Object value) { if (value == null) { value = EMPTY_STRING; } if (value instanceof String) { final String stringValue = (String) value; if (getIsNegate() ^ !Regex.isMatch(stringValue, getExpression())) { return ValidationResult.fail(getMessage()); } else { return ValidationResult.ok(); } } else { return ValidationResult.fail("Unable to do Regex validation on non String input"); //$NON-NLS-1$ } } protected String start() { return "^"; //$NON-NLS-1$ } protected String end() { return "$"; //$NON-NLS-1$ } }