Reduce visibility of codec methods
[yangtools.git] / yang / yang-data-codec-gson / src / main / java / org / opendaylight / yangtools / yang / data / codec / gson / AbstractJSONCodec.java
index 94646531a8cf0ed607b00af1620abada67117b58..7c00715f320483a4e2496b7e6946f1c888daab29 100644 (file)
@@ -8,7 +8,6 @@
 package org.opendaylight.yangtools.yang.data.codec.gson;
 
 import com.google.common.base.Preconditions;
-
 import org.opendaylight.yangtools.concepts.Codec;
 import org.opendaylight.yangtools.yang.data.api.codec.BooleanCodec;
 import org.opendaylight.yangtools.yang.data.api.codec.DecimalCodec;
@@ -25,7 +24,7 @@ import org.opendaylight.yangtools.yang.data.impl.codec.TypeDefinitionAwareCodec;
 /**
  * Abstract base implementation of {@link JSONCodec}, which wraps a {@link TypeDefinitionAwareCodec}.
  *
- * @param <T> Deserialized objec type
+ * @param <T> Deserialized object type
  */
 abstract class AbstractJSONCodec<T> implements JSONCodec<T> {
     private final Codec<String, T> codec;
@@ -39,13 +38,16 @@ abstract class AbstractJSONCodec<T> implements JSONCodec<T> {
      * @param codec underlying codec
      * @return A JSONCodec instance
      */
-    public static <T> JSONCodec<T> create(final Codec<String, T> codec) {
-        if (codec instanceof BooleanCodec || codec instanceof DecimalCodec ||
-                codec instanceof Int8Codec || codec instanceof Int16Codec ||
-                codec instanceof Int32Codec || codec instanceof Int64Codec ||
-                codec instanceof Uint8Codec || codec instanceof Uint16Codec ||
-                codec instanceof Uint32Codec || codec instanceof Uint64Codec) {
-            return new UnquotedJSONCodec<>(codec);
+    public static JSONCodec<?> create(final Codec<String, ?> codec) {
+        if (codec instanceof BooleanCodec) {
+            return new BooleanJSONCodec((BooleanCodec<String>) codec);
+        }
+        if (codec instanceof DecimalCodec || codec instanceof Int8Codec
+                || codec instanceof Int16Codec || codec instanceof Int32Codec
+                || codec instanceof Int64Codec || codec instanceof Uint8Codec
+                || codec instanceof Uint16Codec || codec instanceof Uint32Codec
+                || codec instanceof Uint64Codec) {
+            return new NumberJSONCodec(codec);
         }
 
         return new QuotedJSONCodec<>(codec);