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