Improve JSONCodecFactory 38/103938/4
authorRobert Varga <robert.varga@pantheon.tech>
Fri, 6 Jan 2023 13:38:44 +0000 (14:38 +0100)
committerRobert Varga <nite@hq.sk>
Fri, 6 Jan 2023 19:33:32 +0000 (19:33 +0000)
Improve type safety for tests by returning a well-defined JSONCodec.

Change-Id: Id0ba808b03c3b035ad77d545dc4acdc60920188a
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
codec/yang-data-codec-gson/src/main/java/org/opendaylight/yangtools/yang/data/codec/gson/JSONCodecFactory.java
codec/yang-data-codec-gson/src/test/java/org/opendaylight/yangtools/yang/data/codec/gson/Bug8083Test.java

index 1aa7192e6b0328e1dcf493407d0f00798a921b77..b1a795517ec11efe4cc82c9de1dfd503176a0f74 100644 (file)
@@ -14,7 +14,9 @@ import edu.umd.cs.findbugs.annotations.SuppressFBWarnings;
 import java.util.List;
 import java.util.function.BiFunction;
 import org.eclipse.jdt.annotation.NonNull;
+import org.opendaylight.yangtools.yang.common.QName;
 import org.opendaylight.yangtools.yang.common.QNameModule;
+import org.opendaylight.yangtools.yang.data.api.YangInstanceIdentifier;
 import org.opendaylight.yangtools.yang.data.impl.codec.AbstractIntegerStringCodec;
 import org.opendaylight.yangtools.yang.data.impl.codec.BinaryStringCodec;
 import org.opendaylight.yangtools.yang.data.impl.codec.BitsStringCodec;
@@ -136,12 +138,13 @@ public abstract sealed class JSONCodecFactory extends AbstractCodecFactory<JSONC
     }
 
     @Override
-    protected final JSONCodec<?> identityRefCodec(final IdentityrefTypeDefinition type, final QNameModule module) {
+    protected final JSONCodec<QName> identityRefCodec(final IdentityrefTypeDefinition type, final QNameModule module) {
         return new IdentityrefJSONCodec(getEffectiveModelContext(), module);
     }
 
     @Override
-    protected final JSONCodec<?> instanceIdentifierCodec(final InstanceIdentifierTypeDefinition type) {
+    protected final JSONCodec<YangInstanceIdentifier> instanceIdentifierCodec(
+            final InstanceIdentifierTypeDefinition type) {
         return iidCodec;
     }
 
index ae2371876b9542519c49dbcaa45caba8befa8be5..1a2dd5b46ea9257316c0349610234e40297f311e 100644 (file)
@@ -164,7 +164,7 @@ public class Bug8083Test {
         assertTrue(foo instanceof LeafSchemaNode);
         final TypeDefinition<? extends TypeDefinition<?>> type = ((LeafSchemaNode) foo).getType();
         assertTrue(type instanceof InstanceIdentifierTypeDefinition);
-        return (JSONCodec<YangInstanceIdentifier>) supplier.createSimple(FULL_SCHEMA_CONTEXT)
+        return supplier.createSimple(FULL_SCHEMA_CONTEXT)
                 .instanceIdentifierCodec((InstanceIdentifierTypeDefinition) type);
     }