Revert "JSON serializer fixes"

This reverts commit 4645d9424c4911ee887905ed40ae407b1cd7f08c.

Change-Id: Ie70a17f8b42ef88044daf0ee5db9ea2a0f876426
diff --git a/serializers/json/src/main/java/org/onosproject/yang/serializers/json/DataNodeJsonVisitor.java b/serializers/json/src/main/java/org/onosproject/yang/serializers/json/DataNodeJsonVisitor.java
index 64120c1..617f871 100644
--- a/serializers/json/src/main/java/org/onosproject/yang/serializers/json/DataNodeJsonVisitor.java
+++ b/serializers/json/src/main/java/org/onosproject/yang/serializers/json/DataNodeJsonVisitor.java
@@ -40,7 +40,7 @@
     /**
      * Creates an instance of data node JSON visitor.
      *
-     * @param jb      json builder
+     * @param jb json builder
      * @param context yang serializer context
      */
     public DataNodeJsonVisitor(JsonBuilder jb, YangSerializerContext context) {
@@ -51,7 +51,7 @@
     @Override
     public void enterDataNode(DataNode dataNode,
                               DataNodeSiblingPositionType siblingType) {
-        String nodeName = getNodeName(dataNode);
+        String nodeName = getNodeNameWithModuleName(dataNode.key().schemaId());
         switch (dataNode.type()) {
             case SINGLE_INSTANCE_NODE:
                 jsonBuilder.addNodeTopHalf(nodeName, JsonNodeType.OBJECT);
@@ -79,22 +79,17 @@
             default:
                 break;
         }
-        jsonBuilder.pushModuleName(getModuleNameFromDataNode(dataNode));
     }
 
-    private String getModuleNameFromDataNode(DataNode dataNode) {
-        String nameSpace = dataNode.key().schemaId().namespace();
-        return getModuleNameFromNameSpace(jsonSerializerContext, nameSpace);
-    }
-
-    private String getNodeName(DataNode dataNode) {
-        SchemaId schemaId = dataNode.key().schemaId();
+    private String getNodeNameWithModuleName(SchemaId schemaId) {
         String nodeName = schemaId.name();
-        String moduleName = getModuleNameFromDataNode(dataNode);
+        String nameSpace = schemaId.namespace();
+        String moduleName = getModuleNameFromNameSpace(jsonSerializerContext,
+                                                       nameSpace);
 
         StringBuilder builder = new StringBuilder();
 
-        if (moduleName != null && !moduleName.equals(jsonBuilder.subTreeModuleName())) {
+        if (nameSpace != null) {
             builder.append(moduleName);
             builder.append(COLON);
         }
@@ -131,6 +126,5 @@
             default:
                 break;
         }
-        jsonBuilder.popModuleName();
     }
 }
diff --git a/serializers/json/src/main/java/org/onosproject/yang/serializers/json/DefaultJsonBuilder.java b/serializers/json/src/main/java/org/onosproject/yang/serializers/json/DefaultJsonBuilder.java
index 9492a15..3dc0ff5 100644
--- a/serializers/json/src/main/java/org/onosproject/yang/serializers/json/DefaultJsonBuilder.java
+++ b/serializers/json/src/main/java/org/onosproject/yang/serializers/json/DefaultJsonBuilder.java
@@ -25,7 +25,6 @@
 
 import java.io.IOException;
 import java.util.Set;
-import java.util.Stack;
 
 import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.base.Strings.isNullOrEmpty;
@@ -43,19 +42,15 @@
     private static final String COMMA = ",";
     private static final String COLON = ":";
     private static final String QUOTE = "\"";
-    private static final String ROOT_MODULE_NAME = "ROOT";
 
-    private Stack<String> moduleNameStack;
 
     public DefaultJsonBuilder(String rootName) {
         checkNotNull(rootName);
-        treeString = new StringBuilder(rootName);
-        moduleNameStack = new Stack<>();
+        this.treeString = new StringBuilder(rootName);
     }
 
     public DefaultJsonBuilder() {
-        treeString = new StringBuilder();
-        moduleNameStack = new Stack<>();
+        this.treeString = new StringBuilder();
     }
 
     @Override
@@ -146,6 +141,8 @@
 
     @Override
     public String getTreeString() {
+        removeCommaIfExist();
+        removeFirstFieldNameIfExist();
         return treeString.toString();
     }
 
@@ -181,34 +178,8 @@
     }
 
     @Override
-    public String subTreeModuleName() {
-        return moduleNameStack.peek();
-    }
-
-    @Override
-    public void pushModuleName(String moduleName) {
-        moduleNameStack.push(moduleName);
-    }
-
-    @Override
-    public void popModuleName() {
-        moduleNameStack.pop();
-    }
-
-    @Override
-    public void initializeJson() {
-        if (!moduleNameStack.empty()) {
-            moduleNameStack.removeAllElements();
-        }
-        moduleNameStack.push(ROOT_MODULE_NAME);
-        treeString.setLength(0);
-        treeString.append(LEFT_BRACE);
-    }
-
-    @Override
-    public void finalizeJson() {
+    public void removeExtraTerminator() {
         removeCommaIfExist();
-        treeString.append(RIGHT_BRACE);
     }
 
     private void appendField(String fieldName) {
diff --git a/serializers/json/src/main/java/org/onosproject/yang/serializers/json/EncoderUtils.java b/serializers/json/src/main/java/org/onosproject/yang/serializers/json/EncoderUtils.java
index e78bf3e..2f9ca39 100644
--- a/serializers/json/src/main/java/org/onosproject/yang/serializers/json/EncoderUtils.java
+++ b/serializers/json/src/main/java/org/onosproject/yang/serializers/json/EncoderUtils.java
@@ -59,13 +59,12 @@
         checkNotNull(dataNode, "data node cannot be null");
 
         JsonBuilder jsonBuilder = new DefaultJsonBuilder();
-        jsonBuilder.initializeJson();
         DataNodeVisitor treeNodeListener = new DataNodeJsonVisitor(jsonBuilder, context);
 
         DataNodeSiblingPositionType siblingType = NOT_MULTI_INSTANCE_NODE;
         walkDataNodeTree(treeNodeListener, dataNode, siblingType);
 
-        jsonBuilder.finalizeJson();
+        jsonBuilder.removeExtraTerminator();
         ObjectNode resultData = jsonBuilder.getTreeNode();
         return resultData;
     }
diff --git a/serializers/json/src/main/java/org/onosproject/yang/serializers/json/JsonBuilder.java b/serializers/json/src/main/java/org/onosproject/yang/serializers/json/JsonBuilder.java
index aff22db..cb53cdd 100644
--- a/serializers/json/src/main/java/org/onosproject/yang/serializers/json/JsonBuilder.java
+++ b/serializers/json/src/main/java/org/onosproject/yang/serializers/json/JsonBuilder.java
@@ -88,43 +88,5 @@
      */
     ObjectNode getTreeNode();
 
-    /**
-     * Returns the YANG module name of the JSON subtree that the builder
-     * is currently building. The YANG module name represents the name
-     * space of the subtree.
-     *
-     * @return YANG module name
-     */
-    String subTreeModuleName();
-
-    /**
-     * Updates the YANG module name of the JSON subtree that the builder
-     * is currently building. The YANG module name represents the name
-     * space of the subtree. This function may be called when the builder
-     * starts to build a data node.
-     *
-     * @param moduleName YANG module name of the current subtree
-     */
-    void pushModuleName(String moduleName);
-
-    /**
-     * Removes the YANG module name of the JSON subtree that the builder
-     * is currently building. This function may be called when the builder
-     * finishes building a data node.
-     */
-    void popModuleName();
-
-    /**
-     * Initializes the output JSON and emits the JSON starting symbol
-     * (e.g., the left curly bracket). This method should be the first method
-     * to be called when a JSON building process starts.
-     */
-    void initializeJson();
-
-    /**
-     * Finalizes the output JSON and emits the JSON terminating symbol
-     * (e.g., the right curly bracket). This method should be the last method
-     * to be called when a JSON building process finishes.
-     */
-    void finalizeJson();
+    void removeExtraTerminator();
 }