From: Robert Varga Date: Sat, 2 Jan 2016 10:06:22 +0000 (+0100) Subject: Clean GSON-based codec X-Git-Tag: release/beryllium~72 X-Git-Url: https://git.opendaylight.org/gerrit/gitweb?a=commitdiff_plain;h=4301e73aa7eff9d4d509014a5b4c9076e4d4c288;p=yangtools.git Clean GSON-based codec Place a deprecation marker, make test methods static, reorder imports. Change-Id: I0979f9f15d231debc53b978ef2534c2f3cf8f14e Signed-off-by: Robert Varga --- diff --git a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONCodec.java b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONCodec.java index 003684cbf6..9d754b9fe6 100644 --- a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONCodec.java +++ b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONCodec.java @@ -12,10 +12,12 @@ import java.io.IOException; import org.opendaylight.yangtools.concepts.Codec; interface JSONCodec extends Codec { - // 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. * diff --git a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterInvisibleContext.java b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterInvisibleContext.java index e43aead9f4..38c9e2ab60 100644 --- a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterInvisibleContext.java +++ b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStreamWriterInvisibleContext.java @@ -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. diff --git a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStringInstanceIdentifierCodec.java b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStringInstanceIdentifierCodec.java index bb57f2fa8d..c53eea4513 100644 --- a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStringInstanceIdentifierCodec.java +++ b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONStringInstanceIdentifierCodec.java @@ -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 { - 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 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)); } } diff --git a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JsonParserStream.java b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JsonParserStream.java index aeb05df10a..3389853d34 100644 --- a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JsonParserStream.java +++ b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JsonParserStream.java @@ -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."); diff --git a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JsonWriterFactory.java b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JsonWriterFactory.java index 3b3bf8d013..8d3eb258b8 100644 --- a/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JsonWriterFactory.java +++ b/yang/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JsonWriterFactory.java @@ -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; } - } diff --git a/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/JsonStreamToNormalizedNodeTest.java b/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/JsonStreamToNormalizedNodeTest.java index 0fff8ade85..8c0d8b46ec 100644 --- a/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/JsonStreamToNormalizedNodeTest.java +++ b/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/JsonStreamToNormalizedNodeTest.java @@ -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); diff --git a/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/retest/JsonStreamToNormalizedNodeTest.java b/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/retest/JsonStreamToNormalizedNodeTest.java index 00178efaa0..d218bcbad5 100644 --- a/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/retest/JsonStreamToNormalizedNodeTest.java +++ b/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/retest/JsonStreamToNormalizedNodeTest.java @@ -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); diff --git a/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/retest/NormalizedNodeToJsonStreamTest.java b/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/retest/NormalizedNodeToJsonStreamTest.java index bf0417fe61..58480a731a 100644 --- a/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/retest/NormalizedNodeToJsonStreamTest.java +++ b/yang/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/retest/NormalizedNodeToJsonStreamTest.java @@ -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.