package org.ovirt.engine.ui.uicommonweb.validation;
import org.ovirt.engine.core.compat.IntegerCompat;
import org.ovirt.engine.ui.uicompat.ConstantsManager;
@SuppressWarnings("unused")
public class IntegerValidation implements IValidation {
private int privateMaximum;
public int getMaximum() {
return privateMaximum;
}
public void setMaximum(int value) {
privateMaximum = value;
}
private int privateMinimum;
public int getMinimum() {
return privateMinimum;
}
public void setMinimum(int value) {
privateMinimum = value;
}
public IntegerValidation() {
setMaximum(Integer.MAX_VALUE);
setMinimum(Integer.MIN_VALUE);
}
public IntegerValidation(int min, int max) {
setMinimum(min);
setMaximum(max);
}
@Override
public ValidationResult validate(Object value) {
ValidationResult result = new ValidationResult();
if (value != null && ((value instanceof String && !value.equals("")) || value instanceof Integer)) { //$NON-NLS-1$
Integer intValue = value instanceof String ? IntegerCompat.tryParse((String) value) : (Integer) value;
String msg = ""; //$NON-NLS-1$
String prefixMsg =
ConstantsManager.getInstance().getConstants().thisFieldMustContainIntegerNumberInvalidReason();
if (intValue == null) {
result.setSuccess(false);
msg =
ConstantsManager.getInstance()
.getMessages()
.integerValidationNumberBetweenInvalidReason(prefixMsg, getMinimum(), getMaximum());
result.getReasons().add(msg);
}
else if (intValue < getMinimum() || intValue > getMaximum()) {
if (getMinimum() != Integer.MIN_VALUE && getMaximum() != Integer.MAX_VALUE) {
msg =
ConstantsManager.getInstance()
.getMessages()
.integerValidationNumberBetweenInvalidReason(prefixMsg, getMinimum(), getMaximum());
}
else if (getMinimum() != Integer.MIN_VALUE) {
msg =
ConstantsManager.getInstance()
.getMessages()
.integerValidationNumberGreaterInvalidReason(prefixMsg, getMinimum());
}
else if (getMaximum() != Integer.MAX_VALUE) {
msg =
ConstantsManager.getInstance()
.getMessages()
.integerValidationNumberLessInvalidReason(prefixMsg, getMaximum());
}
result.setSuccess(false);
result.getReasons().add(msg);
}
}
return result;
}
}