Clean GSON-based codec 88/31988/2
authorRobert Varga <robert.varga@pantheon.sk>
Sat, 2 Jan 2016 10:06:22 +0000 (11:06 +0100)
committerGerrit Code Review <gerrit@opendaylight.org>
Mon, 4 Jan 2016 08:52:06 +0000 (08:52 +0000)
Place a deprecation marker, make test methods static, reorder imports.

Change-Id: I0979f9f15d231debc53b978ef2534c2f3cf8f14e
Signed-off-by: Robert Varga <robert.varga@pantheon.sk>
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONCodec.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterInvisibleContext.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStringInstanceIdentifierCodec.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JsonParserStream.java
yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JsonWriterFactory.java
yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/JsonStreamToNormalizedNodeTest.java
yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/retest/JsonStreamToNormalizedNodeTest.java
yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/retest/NormalizedNodeToJsonStreamTest.java

index 003684cbf69d1c0179bbfeabf79816c191963a96..9d754b9fe6ed0d8f091e3a56c1904ee5191d229d 100644 (file)
@@ -12,10 +12,12 @@ import java.io.IOException;
 import org.opendaylight.yangtools.concepts.Codec;
 
 interface JSONCodec<T> extends Codec<String, T> {
-    // FIXME: Unused, remove once we are sure we do not need this anymore.
+    /**
+     * @deprecated Unused, remove once we are sure we do not need this anymore.
+     */
+    @Deprecated
     boolean needQuotes();
 
-
     /**
      * Serialize specified value with specified JsonWriter.
      *
index e43aead9f449496235284f17dbbba6aa474b644b..38c9e2ab604715559b21f520c8edc2d696fb21ab 100644 (file)
@@ -10,8 +10,6 @@ package org.opendaylight.yangtools.yang.data.codec.gson;
 import com.google.common.base.Preconditions;
 import com.google.gson.stream.JsonWriter;
 
-
-
 /**
  * A virtual recursion level in {@link JSONNormalizedNodeStreamWriter}, used for nodes
  * which are not emitted in the JSON representation.
index bb57f2fa8d7eaf124847a46e147c6150e66f6d7d..c53eea45132ed4dc0038233d42cc72e6c4abed9b 100644 (file)
@@ -20,14 +20,14 @@ import org.opendaylight.yangtools.yang.model.api.Module;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
 
 final class JSONStringInstanceIdentifierCodec extends AbstractModuleStringInstanceIdentifierCodec implements JSONCodec<YangInstanceIdentifier> {
-    private final SchemaContext context;
     private final DataSchemaContextTree dataContextTree;
     private final JSONCodecFactory codecFactory;
+    private final SchemaContext context;
 
     JSONStringInstanceIdentifierCodec(final SchemaContext context, final JSONCodecFactory jsonCodecFactory) {
         this.context = Preconditions.checkNotNull(context);
         this.dataContextTree = DataSchemaContextTree.from(context);
-        this.codecFactory = jsonCodecFactory;
+        this.codecFactory = Preconditions.checkNotNull(jsonCodecFactory);
     }
 
     @Override
@@ -52,7 +52,7 @@ final class JSONStringInstanceIdentifierCodec extends AbstractModuleStringInstan
     }
 
     @Override
-    protected Object deserializeKeyValue(DataSchemaNode schemaNode, String value) {
+    protected Object deserializeKeyValue(final DataSchemaNode schemaNode, final String value) {
         Preconditions.checkNotNull(schemaNode, "schemaNode cannot be null");
         Preconditions.checkArgument(schemaNode instanceof LeafSchemaNode, "schemaNode must be of type LeafSchemaNode");
         final JSONCodec<Object> objectJSONCodec = codecFactory.codecFor(schemaNode);
@@ -66,7 +66,7 @@ final class JSONStringInstanceIdentifierCodec extends AbstractModuleStringInstan
      * @param value YangInstanceIdentifier
      */
     @Override
-    public void serializeToWriter(JsonWriter writer, YangInstanceIdentifier value) throws IOException {
+    public void serializeToWriter(final JsonWriter writer, final YangInstanceIdentifier value) throws IOException {
         writer.value(serialize(value));
     }
 }
index aeb05df10a3f3c808e550bd1af19a05b5ba24ef1..3389853d34fcb1bc0cc934461700431a0cbf4d38 100644 (file)
@@ -52,15 +52,17 @@ public final class JsonParserStream implements Closeable, Flushable {
     private final SchemaContext schema;
     private final DataSchemaNode parentNode;
 
-    private JsonParserStream(final NormalizedNodeStreamWriter writer, final SchemaContext schemaContext, final DataSchemaNode parentNode) {
+    private JsonParserStream(final NormalizedNodeStreamWriter writer, final SchemaContext schemaContext,
+            final DataSchemaNode parentNode) {
         this.schema = Preconditions.checkNotNull(schemaContext);
         this.writer = DataSchemaNodeAwareAdaptor.forWriter(writer);
         this.codecs = JSONCodecFactory.create(schemaContext);
         this.parentNode = parentNode;
     }
 
-    public static JsonParserStream create(final NormalizedNodeStreamWriter writer, final SchemaContext schemaContext, final SchemaNode parentNode ) {
-        if(parentNode instanceof RpcDefinition) {
+    public static JsonParserStream create(final NormalizedNodeStreamWriter writer, final SchemaContext schemaContext,
+            final SchemaNode parentNode ) {
+        if (parentNode instanceof RpcDefinition) {
             return new JsonParserStream(writer, schemaContext, new RpcAsContainer((RpcDefinition) parentNode));
         }
         Preconditions.checkArgument(parentNode instanceof DataSchemaNode, "Instance of DataSchemaNode class awaited.");
index 3b3bf8d01344c8b9b47f568ce9a6e3f91cad0de8..8d3eb258b8800b4617dc34ded9ca16429dc1b358 100644 (file)
@@ -17,16 +17,17 @@ import java.io.Writer;
  */
 @Beta
 public final class JsonWriterFactory {
-
     private JsonWriterFactory() {
+        throw new UnsupportedOperationException();
     }
+
     /**
      * Create a new JsonWriter, which writes to the specified output writer.
      *
      * @param writer Output writer
      * @return A JsonWriter instance
      */
-    public static JsonWriter createJsonWriter(Writer writer) {
+    public static JsonWriter createJsonWriter(final Writer writer) {
         return new JsonWriter(writer);
     }
 
@@ -37,11 +38,10 @@ public final class JsonWriterFactory {
      * @param indentSize size of the indent
      * @return A JsonWriter instance
      */
-    public static JsonWriter createJsonWriter(Writer writer, int indentSize) {
+    public static JsonWriter createJsonWriter(final Writer writer, final int indentSize) {
         JsonWriter jsonWriter = new JsonWriter(writer);
         final String indent = Strings.repeat(" ", indentSize);
         jsonWriter.setIndent(indent);
         return jsonWriter;
     }
-
 }
index 0fff8ade85a115d7eec3623bfc657136d3d721a8..8c0d8b46ece0d2077352210a329a8ef4641e78f9 100644 (file)
@@ -17,7 +17,6 @@ import static org.opendaylight.yangtools.yang.data.impl.schema.Builders.augmenta
 import static org.opendaylight.yangtools.yang.data.impl.schema.Builders.choiceBuilder;
 import static org.opendaylight.yangtools.yang.data.impl.schema.Builders.containerBuilder;
 import static org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes.leafNode;
-
 import com.google.common.collect.Sets;
 import com.google.gson.stream.JsonReader;
 import java.io.IOException;
@@ -31,8 +30,6 @@ import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
-import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
-import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNormalizedNodeStreamWriter;
 import org.opendaylight.yangtools.yang.data.impl.schema.NormalizedNodeResult;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
@@ -283,7 +280,7 @@ public class JsonStreamToNormalizedNodeTest {
         assertEquals(cont1Normalized, transformedInput);
     }
 
-    private void verifyTransformationToNormalizedNode(final String inputJson,
+    private static void verifyTransformationToNormalizedNode(final String inputJson,
             final NormalizedNode<?, ?> awaitedStructure) {
         final NormalizedNodeResult result = new NormalizedNodeResult();
         final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result);
index 00178efaa04498490ff1882ebb6d6ff07b958947..d218bcbad55c6aeda066ed9e71f8763273225936 100644 (file)
@@ -17,14 +17,11 @@ import static org.opendaylight.yangtools.yang.data.impl.schema.Builders.augmenta
 import static org.opendaylight.yangtools.yang.data.impl.schema.Builders.choiceBuilder;
 import static org.opendaylight.yangtools.yang.data.impl.schema.Builders.containerBuilder;
 import static org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes.leafNode;
-
 import com.google.common.collect.Sets;
 import com.google.gson.stream.JsonReader;
-
 import java.io.IOException;
 import java.io.StringReader;
 import java.net.URISyntaxException;
-
 import org.junit.BeforeClass;
 import org.junit.Ignore;
 import org.junit.Test;
@@ -285,7 +282,7 @@ public class JsonStreamToNormalizedNodeTest {
         assertEquals(cont1Normalized, transformedInput);
     }
 
-    private void verifyTransformationToNormalizedNode(final String inputJson,
+    private static void verifyTransformationToNormalizedNode(final String inputJson,
             final NormalizedNode<?, ?> awaitedStructure) {
         final NormalizedNodeResult result = new NormalizedNodeResult();
         final NormalizedNodeStreamWriter streamWriter = ImmutableNormalizedNodeStreamWriter.from(result);
index bf0417fe61886a5c556f6da70e2213e85998eefa..58480a731ae0cd38f5ce7cf39ccdaf5b81b5f848 100644 (file)
@@ -15,11 +15,6 @@ import static org.opendaylight.yangtools.yang.data.codec.gson.retest.TestUtils.c
 import static org.opendaylight.yangtools.yang.data.codec.gson.retest.TestUtils.childPrimitive;
 import static org.opendaylight.yangtools.yang.data.codec.gson.retest.TestUtils.loadModules;
 import static org.opendaylight.yangtools.yang.data.codec.gson.retest.TestUtils.resolveCont1;
-
-import org.opendaylight.yangtools.yang.data.codec.gson.JSONCodecFactory;
-import org.opendaylight.yangtools.yang.data.codec.gson.JsonWriterFactory;
-import org.opendaylight.yangtools.yang.model.api.SchemaPath;
-
 import com.google.common.collect.Sets;
 import com.google.gson.JsonArray;
 import com.google.gson.JsonElement;
@@ -41,10 +36,13 @@ import org.opendaylight.yangtools.yang.data.api.schema.ContainerNode;
 import org.opendaylight.yangtools.yang.data.api.schema.NormalizedNode;
 import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeStreamWriter;
 import org.opendaylight.yangtools.yang.data.api.schema.stream.NormalizedNodeWriter;
+import org.opendaylight.yangtools.yang.data.codec.gson.JSONCodecFactory;
 import org.opendaylight.yangtools.yang.data.codec.gson.JSONNormalizedNodeStreamWriter;
+import org.opendaylight.yangtools.yang.data.codec.gson.JsonWriterFactory;
 import org.opendaylight.yangtools.yang.data.impl.schema.Builders;
 import org.opendaylight.yangtools.yang.data.impl.schema.ImmutableNodes;
 import org.opendaylight.yangtools.yang.model.api.SchemaContext;
+import org.opendaylight.yangtools.yang.model.api.SchemaPath;
 import org.opendaylight.yangtools.yang.parser.spi.meta.ReactorException;
 
 /**
@@ -411,7 +409,7 @@ public class NormalizedNodeToJsonStreamTest {
         assertTrue(emptyObj.getAsJsonArray().get(0) instanceof JsonNull);
     }
 
-    private String normalizedNodeToJsonStreamTransformation(final Writer writer,
+    private static String normalizedNodeToJsonStreamTransformation(final Writer writer,
             final NormalizedNode<?, ?> inputStructure) throws IOException {
 
         final NormalizedNodeStreamWriter jsonStream = JSONNormalizedNodeStreamWriter.