protected Boolean booleanConvert(Object value) {
            if (value instanceof Boolean) {
                return (Boolean) value;
            }

            if (value instanceof Number) {
                return (Math.abs(((Number) value).doubleValue()) < Float.MIN_VALUE) ? Boolean.FALSE : Boolean.TRUE;
            }

            if (value instanceof String) {
                String strValue = ((String) value).trim();
                try {
                    return (Integer.parseInt(strValue) == 0) ? Boolean.FALSE : Boolean.TRUE;
                } catch (NumberFormatException e) {
                    strValue = strValue.toLowerCase();

                    if (TRUE_STRINGS.contains(strValue)) {
                        return Boolean.TRUE;
                    }

                    if (FALSE_STRINGS.contains(strValue)) {
                        return Boolean.FALSE;
                    }

                }
            }

            throw new BeanMappingException("Unsupported convert: [" + String.class + "," + Boolean.class.getName()
                                           + "]");
        }