BarChartFormatter: format null as an empty/missing bar + better logging v_0
authorFrantišek Kučera <franta-hg@frantovo.cz>
Sun, 06 Sep 2015 21:48:54 +0200
branchv_0
changeset 226 b40153eb7716
parent 225 906f767ef9b3
child 227 0094319a274a
BarChartFormatter: format null as an empty/missing bar + better logging
java/sql-dk/src/info/globalcode/sql/dk/formatting/BarChartFormatter.java
--- a/java/sql-dk/src/info/globalcode/sql/dk/formatting/BarChartFormatter.java	Sun Sep 06 21:46:03 2015 +0200
+++ b/java/sql-dk/src/info/globalcode/sql/dk/formatting/BarChartFormatter.java	Sun Sep 06 21:48:54 2015 +0200
@@ -61,9 +61,10 @@
 		BigDecimal minimum = BigDecimal.ZERO;
 		int lastIndex = currentHeader.getColumnCount() - 1;
 
+		Object valueObject = null;
 		try {
 			for (Object[] row : currentResultSet) {
-				Object valueObject = row[lastIndex];
+				valueObject = row[lastIndex];
 				if (valueObject != null) {
 					BigDecimal value = new BigDecimal(valueObject.toString());
 					maximum = maximum.max(value);
@@ -74,8 +75,10 @@
 			BigDecimal range = maximum.subtract(minimum);
 
 			for (Object[] row : currentResultSet) {
-				Object valueObject = row[lastIndex];
-				if (valueObject != null) {
+				valueObject = row[lastIndex];
+				if (valueObject == null) {
+					row[lastIndex] = "";
+				} else {
 					BigDecimal value = new BigDecimal(valueObject.toString());
 					BigDecimal valueFromMinimum = value.subtract(minimum);
 
@@ -87,7 +90,7 @@
 
 		} catch (NumberFormatException e) {
 			// https://en.wiktionary.org/wiki/parsable
-			log.log(Level.SEVERE, "Last column must be number or an object with toString() value parsable to a number.");
+			log.log(Level.SEVERE, "Last column must be number or an object with toString() value parsable to a number. But was „{0}“", valueObject);
 			// FIXME: throw FormatterException
 			throw e;
 		}