package org.ovirt.engine.core.config.entity.helper; import java.util.List; import org.ovirt.engine.core.config.EngineConfigCLIParser; import org.ovirt.engine.core.config.entity.ConfigKey; public class IntegerValueHelper extends BaseValueHelper { @Override public String getValue(String value) { return value; } @Override public String setValue(String value) { return value; } @Override public ValidationResult validate(ConfigKey key, String value) { try { int intValue = Integer.parseInt(value); List<String> validValues = key.getValidValues(); boolean isValid = false; if (validValues.isEmpty()) { isValid = true; } else { for (String validValue : validValues) { boolean isRange = validValue.matches("\\d+\\.\\.\\d+"); if (isRange) { int bottom = Integer.parseInt(validValue.substring(0, validValue.indexOf("."))); int top = Integer.parseInt(validValue.substring(validValue.lastIndexOf(".") + 1, validValue.length())); if (intValue >= bottom && intValue <= top) { isValid = true; break; } } else { if (intValue == Integer.parseInt(validValue)) { isValid = true; break; } } } } return new ValidationResult(isValid); } catch (NumberFormatException e) { // invalid number return new ValidationResult(false); } } @Override public void setParser(EngineConfigCLIParser parser) { // NOP } @Override public String getHelpNote(ConfigKey key) { return getHelpNoteByType(key, "numeric"); } }