Propagate notification status to generated listener methods
[mdsal.git] / binding / mdsal-binding-generator-impl / src / main / java / org / opendaylight / mdsal / binding / generator / impl / AbstractTypeGenerator.java
index afed7fe272826f746896653b310dbeb2dfd7aec4..96c880171dbd37d6450fab0710703665f82f328e 100644 (file)
@@ -124,6 +124,7 @@ import org.opendaylight.yangtools.yang.model.api.OutputSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.RpcDefinition;
 import org.opendaylight.yangtools.yang.model.api.SchemaNode;
 import org.opendaylight.yangtools.yang.model.api.SchemaPath;
+import org.opendaylight.yangtools.yang.model.api.Status;
 import org.opendaylight.yangtools.yang.model.api.TypeDefinition;
 import org.opendaylight.yangtools.yang.model.api.TypedDataSchemaNode;
 import org.opendaylight.yangtools.yang.model.api.UnknownSchemaNode;
@@ -630,9 +631,16 @@ abstract class AbstractTypeGenerator {
                 resolveDataSchemaNodes(context, notificationInterface, notificationInterface,
                     notification.getChildNodes(), false);
 
-                addComment(listenerInterface.addMethod("on" + notificationInterface.getName())
+                final MethodSignatureBuilder notificationMethod =
+                    listenerInterface.addMethod("on" + notificationInterface.getName())
                     .setAccessModifier(AccessModifier.PUBLIC).addParameter(notificationInterface, "notification")
-                    .setReturnType(primitiveVoidType()), notification);
+                    .setReturnType(primitiveVoidType());
+
+                annotateDeprecatedIfNecessary(notification, notificationMethod);
+                if (notification.getStatus().equals(Status.OBSOLETE)) {
+                    notificationMethod.setDefault(true);
+                }
+                addComment(notificationMethod, notification);
             }
         }