package com.sijobe.spc.validation; import java.util.ArrayList; import java.util.List; public class ParameterBoolean extends Parameter { private List<String> valid; private List<String> invalid; public ParameterBoolean(String label, boolean optional) { this(label,optional,"true","false"); } public ParameterBoolean(String label, boolean optional, String valid, String invalid) { super(label, optional); this.valid = new ArrayList<String>(); this.valid.add(valid.toLowerCase()); this.invalid = new ArrayList<String>(); this.invalid.add(invalid.toLowerCase()); } public ParameterBoolean(String label, boolean optional, List<String> valid, List<String> invalid) { super(label, optional); if (valid == null) { valid = new ArrayList<String>(); } for (int i = 0; i < valid.size(); i++) { valid.set(i, valid.get(i).toLowerCase()); } this.valid = valid; if (invalid == null) { invalid = new ArrayList<String>(); } for (int i = 0; i < invalid.size(); i++) { invalid.set(i, invalid.get(i).toLowerCase()); } this.invalid = invalid; } /** * @see com.sijobe.spc.validation.Parameter#validate(java.lang.String) */ @Override public Boolean validate(String parameter) throws ValidationException { if (valid.contains(parameter.toLowerCase())) { return true; } if (invalid.contains(parameter.toLowerCase())) { return false; } throw new ValidationException("Invalid text (" + parameter + ") where boolean value was expected"); } }