Binding codec v2 - cast case type to get serializer 91/61891/8
authorJie Han <han.jie@zte.com.cn>
Thu, 17 Aug 2017 06:03:52 +0000 (14:03 +0800)
committerRobert Varga <nite@hq.sk>
Sat, 7 Oct 2017 19:18:36 +0000 (19:18 +0000)
- it should be type of generated interface to get serializer for case,
  not the class type in builder.

Change-Id: Ibe2fdfaf2db7e95027809183c29011fb62b56058
Signed-off-by: Jie Han <han.jie@zte.com.cn>
binding2/mdsal-binding2-dom-codec/src/main/java/org/opendaylight/mdsal/binding/javav2/dom/codec/impl/serializer/ChoiceDispatchSerializer.java

index 72f287af2d28d85dbe7bd0eccf8dd7d4b8e14c6f..452b71b8e54afd0fbcb022768ed8e4df540308c5 100644 (file)
@@ -52,7 +52,7 @@ public class ChoiceDispatchSerializer implements TreeNodeSerializerImplementatio
     public void serialize(final TreeNodeSerializerRegistry reg, final TreeNode obj,
             final BindingStreamEventWriter stream) throws IOException {
         @SuppressWarnings("rawtypes")
-        final Class cazeClass = obj.getClass();
+        final Class cazeClass = ((Instantiable<?>) obj).implementedInterface();
         stream.startChoiceNode(new Item<>(choiceClass), BindingStreamEventWriter.UNKNOWN_SIZE);
         final TreeNodeSerializer caseSerializer = reg.getSerializer(cazeClass);
         if (caseSerializer != null) {