package model.manager.excel.reports.in; import java.util.HashSet; import java.util.Set; import model.manager.excel.conversion.exceptions.PatientException; import model.manager.excel.interfaces.ImportConverter; public class BooleanConverter implements ImportConverter<Boolean> { private final Set<String> trueValues = new HashSet<String>(); private final Set<String> falseValues = new HashSet<String>(); public BooleanConverter() { trueValues.add("y"); trueValues.add("yes"); trueValues.add("true"); trueValues.add("t"); falseValues.add("n"); falseValues.add("no"); falseValues.add("false"); falseValues.add("f"); } @Override public Boolean convert(String rawValue) throws PatientException { if (trueValues.contains(rawValue.toLowerCase())){ return true; } else if (falseValues.contains(rawValue.toLowerCase())){ return false; } throw new PatientException("Unknown boolean value: " + rawValue); } @Override public String getDescription() { StringBuilder sb = new StringBuilder("Any of the following values: "); for (String s : trueValues) { sb.append(s).append(","); } for (String s : falseValues) { sb.append(s).append(","); } return sb.substring(0, sb.length()-1); } }