Adding ability for Config to be backed by generic JsonNode, i.e. either ObjectNode or ArrayNode.

Change-Id: I5f9ec423cd5f23f61c97a57073d9d11071c47997
diff --git a/cli/src/main/java/org/onosproject/cli/cfg/NetworkConfigCommand.java b/cli/src/main/java/org/onosproject/cli/cfg/NetworkConfigCommand.java
index a254e47..5f2f86e 100644
--- a/cli/src/main/java/org/onosproject/cli/cfg/NetworkConfigCommand.java
+++ b/cli/src/main/java/org/onosproject/cli/cfg/NetworkConfigCommand.java
@@ -15,6 +15,7 @@
  */
 package org.onosproject.cli.cfg;
 
+import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.node.ObjectNode;
 import org.apache.karaf.shell.commands.Argument;
@@ -51,17 +52,17 @@
     @Override
     protected void execute() {
         service = get(NetworkConfigService.class);
-        ObjectNode root = new ObjectMapper().createObjectNode();
+        JsonNode root = new ObjectMapper().createObjectNode();
         if (isNullOrEmpty(subjectKey)) {
-            addAll(root);
+            addAll((ObjectNode) root);
         } else {
             SubjectFactory subjectFactory = service.getSubjectFactory(subjectKey);
             if (isNullOrEmpty(subject)) {
-                addSubjectClass(root, subjectFactory);
+                addSubjectClass((ObjectNode) root, subjectFactory);
             } else {
                 Object s = subjectFactory.createSubject(subject);
                 if (isNullOrEmpty(configKey)) {
-                    addSubject(root, s);
+                    addSubject((ObjectNode) root, s);
                 } else {
                     root = getSubjectConfig(getConfig(s, subjectKey, configKey));
                 }
@@ -89,7 +90,7 @@
         service.getConfigs(s).forEach(c -> root.set(c.key(), c.node()));
     }
 
-    private ObjectNode getSubjectConfig(Config config) {
+    private JsonNode getSubjectConfig(Config config) {
         return config != null ? config.node() : null;
     }