Move BindingMapping
[mdsal.git] / binding / mdsal-binding-dom-codec / src / main / java / org / opendaylight / mdsal / binding / dom / codec / gen / impl / DataNodeContainerSerializerSource.java
index 03141587e96cb8f841d87043e5617b0e1776b4cf..aaeb898ff087473a2140828b77a0c5b312691b92 100644 (file)
@@ -16,7 +16,7 @@ import org.opendaylight.mdsal.binding.model.api.GeneratedType;
 import org.opendaylight.mdsal.binding.model.api.MethodSignature;
 import org.opendaylight.mdsal.binding.model.api.ParameterizedType;
 import org.opendaylight.mdsal.binding.model.api.Type;
-import org.opendaylight.yangtools.yang.binding.BindingMapping;
+import org.opendaylight.mdsal.binding.spec.naming.BindingMapping;
 import org.opendaylight.yangtools.yang.binding.BindingSerializer;
 import org.opendaylight.yangtools.yang.binding.BindingStreamEventWriter;
 import org.opendaylight.yangtools.yang.binding.DataObject;
@@ -31,7 +31,7 @@ import org.opendaylight.yangtools.yang.model.api.LeafListSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.LeafSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.ListSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
-import org.opendaylight.yangtools.yang.model.api.TypedSchemaNode;
+import org.opendaylight.yangtools.yang.model.api.TypedDataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.type.BooleanTypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.type.EmptyTypeDefinition;
 import org.slf4j.Logger;
@@ -110,14 +110,17 @@ abstract class DataNodeContainerSerializerSource extends DataObjectSerializerSou
 
     private static String getGetterName(final DataSchemaNode node) {
         final TypeDefinition<?> type;
-        if (node instanceof TypedSchemaNode) {
-            type = ((TypedSchemaNode) node).getType();
+        if (node instanceof TypedDataSchemaNode) {
+            type = ((TypedDataSchemaNode) node).getType();
         } else {
             type = null;
         }
 
         final String prefix;
-        if (type instanceof BooleanTypeDefinition || type instanceof EmptyTypeDefinition) {
+        // Bug 8903: If it is a derived type of boolean or empty, not an inner type, then the return type
+        // of method would be the generated type of typedef not build-in types, so here it should be 'get'.
+        if ((type instanceof BooleanTypeDefinition || type instanceof EmptyTypeDefinition)
+                && (type.getPath().equals(node.getPath()) || type.getBaseType() == null)) {
             prefix = "is";
         } else {
             prefix = "get";