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()]);
+        }
     }
 }