package org.sql2o.converters; /** * Created with IntelliJ IDEA. * User: lars * Date: 6/1/13 * Time: 10:54 PM * To change this template use File | Settings | File Templates. */ public class BooleanConverter extends ConverterBase<Boolean> { public Boolean convert(Object val) throws ConverterException { if (val == null) return null; if (val instanceof Boolean) { return (Boolean) val; } if (val instanceof Number) { return ((Number)val).intValue() != 0; } if (val instanceof Character) { // cast to char is required to compile with java 8 return (char)val =='Y' || (char)val =='T' || (char)val =='J'; } if (val instanceof String) { String strVal = ((String)val).trim(); return "Y".equalsIgnoreCase(strVal) || "YES".equalsIgnoreCase(strVal) || "TRUE".equalsIgnoreCase(strVal) || "T".equalsIgnoreCase(strVal) || "J".equalsIgnoreCase(strVal); } throw new ConverterException("Don't know how to convert type " + val.getClass().getName() + " to " + Boolean.class.getName()); } }