Bug 706: - Missing support for anyxml statement in java generator and mapping service
[mdsal.git] / binding2 / mdsal-binding2-generator-impl / src / main / java / org / opendaylight / mdsal / binding / javav2 / generator / impl / GenHelperUtil.java
index 9afe6650cb3118e9b6070b3b1a3ab7f78941327f..0c72ed3bf8fa2884ea5d96cd2557c991cb663084 100644 (file)
@@ -60,6 +60,7 @@ import org.opendaylight.mdsal.binding.javav2.spec.runtime.BindingNamespaceType;
 import org.opendaylight.mdsal.binding.javav2.spec.structural.Augmentable;
 import org.opendaylight.mdsal.binding.javav2.util.BindingMapping;
 import org.opendaylight.yangtools.yang.common.QName;
+import org.opendaylight.yangtools.yang.model.api.AnyXmlSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.AugmentationSchema;
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.DataNodeContainer;
@@ -532,6 +533,9 @@ final class GenHelperUtil {
             } else if (node instanceof ListSchemaNode) {
                 listToGenType(module, basePackageName, typeBuilder, childOf, (ListSchemaNode) node, schemaContext,
                         verboseClassComments, genCtx, genTypeBuilders, typeProvider);
+            } else if (node instanceof AnyXmlSchemaNode) {
+                resolveAnyxmlNodeAsMethod(schemaContext, typeBuilder, genCtx, (AnyXmlSchemaNode) node, module,
+                        typeProvider);
             }
         }
 
@@ -684,6 +688,27 @@ final class GenHelperUtil {
         return returnType;
     }
 
+    private static Type resolveAnyxmlNodeAsMethod(final SchemaContext schemaContext, final GeneratedTypeBuilder
+            typeBuilder, final Map<Module, ModuleContext> genCtx, final AnyXmlSchemaNode anyxml, final Module module,
+            final TypeProvider typeProvider) {
+
+        final String anyxmlName = anyxml.getQName().getLocalName();
+        if (anyxmlName == null) {
+            return null;
+        }
+
+        String anyxmlDesc = anyxml.getDescription();
+        if (anyxmlDesc == null) {
+            anyxmlDesc = "";
+        }
+
+        Type returnType = Types.DOCUMENT;
+
+        constructGetter(typeBuilder, anyxmlName, anyxmlDesc, returnType, anyxml.getStatus());
+        return returnType;
+    }
+
+
     /**
      * Adds <code>schemaNode</code> to <code>typeBuilder</code> as getter method
      * or to <code>genTOBuilder</code> as property.