Change the data type of Data Point value from Double to Object
Change-Id: If5243fcb25c9893601695743b562ce88b844c64d
diff --git a/core/api/src/main/java/org/onosproject/ui/chart/ChartModel.java b/core/api/src/main/java/org/onosproject/ui/chart/ChartModel.java
index 40c3028..b15705d 100644
--- a/core/api/src/main/java/org/onosproject/ui/chart/ChartModel.java
+++ b/core/api/src/main/java/org/onosproject/ui/chart/ChartModel.java
@@ -43,7 +43,7 @@
private final Set<String> seriesSet;
private final String[] seriesArray;
- private final List<Long> labels = Lists.newArrayList();
+ private final List<Object> labels = Lists.newArrayList();
private final List<DataPoint> dataPoints = Lists.newArrayList();
private final Map<String, Annot> annotations = new HashMap<>();
@@ -94,9 +94,10 @@
/**
* Adds a data point to the chart model.
*
+ * @param label label instance
* @return the data point, for chaining
*/
- public DataPoint addDataPoint(Long label) {
+ public DataPoint addDataPoint(Object label) {
DataPoint dp = new DataPoint();
labels.add(label);
dataPoints.add(dp);
@@ -127,7 +128,7 @@
* @return an array of labels
*/
public Object[] getLabels() {
- return labels.toArray(new Long[labels.size()]);
+ return labels.toArray(new Object[labels.size()]);
}
/**
@@ -219,7 +220,7 @@
*/
public class DataPoint {
// values for all series
- private final Map<String, Double> data = Maps.newHashMap();
+ private final Map<String, Object> data = Maps.newHashMap();
/**
* Sets the data value for the given series of this data point.
@@ -228,7 +229,7 @@
* @param value value to set
* @return self, for chaining
*/
- public DataPoint data(String series, Double value) {
+ public DataPoint data(String series, Object value) {
checkSeries(series);
data.put(series, value);
return this;
@@ -237,9 +238,10 @@
/**
* Returns the data value with the given series for this data point.
*
+ * @param series series name
* @return data value
*/
- public Double get(String series) {
+ public Object get(String series) {
return data.get(series);
}
@@ -248,8 +250,8 @@
*
* @return an array of ordered data values
*/
- public Double[] getAll() {
- Double[] value = new Double[getSeries().length];
+ public Object[] getAll() {
+ Object[] value = new Object[getSeries().length];
int idx = 0;
for (String s : getSeries()) {
value[idx] = get(s);
@@ -266,5 +268,29 @@
public int size() {
return data.size();
}
+
+ /**
+ * Returns the value of the data point as a string, using the
+ * formatter appropriate for the series.
+ *
+ * @param series series
+ * @return formatted data point value
+ */
+ public String getAsString(String series) {
+ return get(series).toString();
+ }
+
+ /**
+ * Returns the row as an array of formatted strings.
+ *
+ * @return the string format of data points
+ */
+ public String[] getAsStrings() {
+ List<String> formatted = new ArrayList<>(size());
+ for (String c : seriesArray) {
+ formatted.add(getAsString(c));
+ }
+ return formatted.toArray(new String[formatted.size()]);
+ }
}
}
diff --git a/core/api/src/main/java/org/onosproject/ui/chart/ChartUtils.java b/core/api/src/main/java/org/onosproject/ui/chart/ChartUtils.java
index 7ba0bdd..67f60a9 100644
--- a/core/api/src/main/java/org/onosproject/ui/chart/ChartUtils.java
+++ b/core/api/src/main/java/org/onosproject/ui/chart/ChartUtils.java
@@ -69,7 +69,7 @@
public static JsonNode toJsonNode(ChartModel.DataPoint dp, ChartModel cm) {
ObjectNode result = MAPPER.createObjectNode();
String[] series = cm.getSeries();
- Double[] values = dp.getAll();
+ String[] values = dp.getAsStrings();
int n = series.length;
for (int i = 0; i < n; i++) {
result.put(series[i], values[i]);
diff --git a/core/api/src/test/java/org/onosproject/ui/chart/ChartUtilsTest.java b/core/api/src/test/java/org/onosproject/ui/chart/ChartUtilsTest.java
index 2252503..c770b7c 100644
--- a/core/api/src/test/java/org/onosproject/ui/chart/ChartUtilsTest.java
+++ b/core/api/src/test/java/org/onosproject/ui/chart/ChartUtilsTest.java
@@ -29,7 +29,7 @@
private static final String BAR = "bar";
private static final String ARRAY_AS_STRING =
- "[{\"foo\":1.0,\"bar\":2.0},{\"foo\":3.0,\"bar\":4.0}]";
+ "[{\"foo\":\"1.0\",\"bar\":\"2.0\"},{\"foo\":\"3.0\",\"bar\":\"4.0\"}]";
private static final String NODE_AS_STRING =
"{\"dev1\":\"of:0000000000000001\",\"dev2\":\"of:0000000000000002\"}";