Rework inlined union generation
[mdsal.git] / binding / mdsal-binding-java-api-generator / src / main / java / org / opendaylight / mdsal / binding / java / api / generator / BaseTemplate.xtend
index 47ddd5db1c36b86118ad21475fc5f11e810512e3..d8d40a575a14faf2b04d807d8345ff941efadafb 100644 (file)
@@ -32,7 +32,7 @@ import org.opendaylight.mdsal.binding.model.api.YangSourceDefinition.Single
 import org.opendaylight.mdsal.binding.model.api.YangSourceDefinition.Multiple
 import org.opendaylight.mdsal.binding.model.util.TypeConstants
 import org.opendaylight.mdsal.binding.model.util.Types
-import org.opendaylight.yangtools.yang.binding.BindingMapping
+import org.opendaylight.mdsal.binding.spec.naming.BindingMapping
 import org.opendaylight.yangtools.yang.binding.CodeHelpers
 import org.opendaylight.yangtools.yang.common.QName
 import org.opendaylight.yangtools.yang.model.api.ContainerSchemaNode
@@ -487,6 +487,17 @@ abstract class BaseTemplate extends JavaFileTemplate {
         return actualType.restrictions;
     }
 
+    def protected generateInnerClass(GeneratedType innerClass) '''
+        «IF innerClass instanceof GeneratedTransferObject»
+            «val innerJavaType = javaType.getEnclosedType(innerClass.identifier)»
+            «IF innerClass.unionType»
+                «new UnionTemplate(innerJavaType, innerClass).generateAsInnerClass»
+            «ELSE»
+                «new ClassTemplate(innerJavaType, innerClass).generateAsInnerClass»
+            «ENDIF»
+        «ENDIF»
+    '''
+
     def static Restrictions getRestrictions(Type type) {
         if (type instanceof ConcreteType) {
             return type.restrictions