Fix YangDataRuntimeTypes not being available
[mdsal.git] / binding / mdsal-binding-generator / src / main / java / org / opendaylight / mdsal / binding / generator / impl / reactor / NotificationGenerator.java
index c2d4a3827564d33e8e7a0b53dab15d853e536af2..52b4ae7dda381818e57a7511adc7310de1dcca4f 100644 (file)
@@ -30,9 +30,14 @@ final class NotificationGenerator
         super(statement, parent);
     }
 
+    @Override
+    StatementNamespace namespace() {
+        return StatementNamespace.NOTIFICATION;
+    }
+
     @Override
     void pushToInference(final SchemaInferenceStack dataTree) {
-        dataTree.enterSchemaTree(statement().getIdentifier());
+        dataTree.enterSchemaTree(statement().argument());
     }
 
     @Override
@@ -58,14 +63,20 @@ final class NotificationGenerator
     }
 
     @Override
-    NotificationRuntimeType createRuntimeType(final GeneratedType type, final NotificationEffectiveStatement statement,
-            final List<RuntimeType> children, final List<AugmentRuntimeType> augments) {
-        return new DefaultNotificationRuntimeType(type, statement, children, augments);
+    void addAsGetterMethod(final GeneratedTypeBuilderBase<?> builder, final TypeBuilderFactory builderFactory) {
+        // Notifications are a distinct concept
     }
 
     @Override
-    void addAsGetterMethod(final GeneratedTypeBuilderBase<?> builder, final TypeBuilderFactory builderFactory) {
-        // Notifications are a distinct concept
+    CompositeRuntimeTypeBuilder<NotificationEffectiveStatement, NotificationRuntimeType> createBuilder(
+            final NotificationEffectiveStatement statement) {
+        return new CompositeRuntimeTypeBuilder<>(statement) {
+            @Override
+            NotificationRuntimeType build(final GeneratedType type, final NotificationEffectiveStatement statement,
+                    final List<RuntimeType> children, final List<AugmentRuntimeType> augments) {
+                return new DefaultNotificationRuntimeType(type, statement, children, augments);
+            }
+        };
     }
 
     private Type notificationType(final GeneratedTypeBuilder builder, final TypeBuilderFactory builderFactory) {
@@ -75,8 +86,8 @@ final class NotificationGenerator
         }
 
         final Type parentType = Type.of(parent.typeName());
-        if (parent instanceof ListGenerator) {
-            final KeyGenerator keyGen = ((ListGenerator) parent).keyGenerator();
+        if (parent instanceof ListGenerator listGen) {
+            final KeyGenerator keyGen = listGen.keyGenerator();
             if (keyGen != null) {
                 return BindingTypes.keyedListNotification(builder, parentType, keyGen.getGeneratedType(builderFactory));
             }