class CSVRow {

    @Nullable
    public Boolean parseBoolean(T csvColumn) {
        String value = parse(csvColumn);
        if (hasNullValue(value)) {
            return null;
        }

        String lowerCase = value.toLowerCase();
        switch (lowerCase) {
            case "":
                return null;
            case "1":
            case "true":
                return true;
            case "0":
            case "false":
                return false;
            default:
                throw new NumberFormatException(lowerCase + " is neither true nor false");
        }
    }

    public  CSVRow(ImmutableMap<String, String> lineByHeader);

}