jvpp: adding callbacks for all messages (VPP-914)
[vpp.git] / src / vpp-api / java / jvpp / gen / jvppgen / dto_gen.py
index e831557..e94bbc5 100644 (file)
@@ -35,6 +35,23 @@ $methods
 }
 """)
 
+dto_template_typeless = Template("""
+package $plugin_package.$dto_package;
+
+/**
+ * <p>This class represents $description.
+ * <br>It was generated by dto_gen.py based on $inputfile preparsed data:
+ * <pre>
+$docs
+ * </pre>
+ */
+public final class $cls_name {
+
+$fields
+$methods
+}
+""")
+
 field_template = Template("""    public $type $name;\n""")
 
 send_template = Template("""    @Override
@@ -93,9 +110,7 @@ def generate_dtos(func_list, base_package, plugin_package, plugin_name, dto_pack
 
         # for structures that are also used as notifications, generate dedicated notification DTO
         if util.is_notification(func["name"]):
-            base_type = "JVppNotification"
             description = "notification DTO"
-            camel_case_dto_name = util.add_notification_suffix(camel_case_dto_name)
             dto_path = os.path.join(dto_package, camel_case_dto_name + ".java")
             methods = generate_dto_base_methods(camel_case_dto_name, func)
             write_dto_file(base_package, plugin_package, base_type, camel_case_dto_name, description, dto_package,
@@ -229,16 +244,26 @@ def generate_dto_hash(func):
 def write_dto_file(base_package, plugin_package, base_type, camel_case_dto_name, description, dto_package, dto_path,
                    fields, func, inputfile, methods):
     dto_file = open(dto_path, 'w')
-    dto_file.write(dto_template.substitute(inputfile=inputfile,
-                                           description=description,
-                                           docs=util.api_message_to_javadoc(func),
-                                           cls_name=camel_case_dto_name,
-                                           fields=fields,
-                                           methods=methods,
-                                           base_package=base_package,
-                                           plugin_package=plugin_package,
-                                           base_type=base_type,
-                                           dto_package=dto_package))
+    if base_type != "":
+        dto_file.write(dto_template.substitute(inputfile=inputfile,
+                                               description=description,
+                                               docs=util.api_message_to_javadoc(func),
+                                               cls_name=camel_case_dto_name,
+                                               fields=fields,
+                                               methods=methods,
+                                               base_package=base_package,
+                                               plugin_package=plugin_package,
+                                               base_type=base_type,
+                                               dto_package=dto_package))
+    else:
+        dto_file.write(dto_template_typeless.substitute(inputfile=inputfile,
+                                                        description=description,
+                                                        docs=util.api_message_to_javadoc(func),
+                                                        cls_name=camel_case_dto_name,
+                                                        fields=fields,
+                                                        methods=methods,
+                                                        plugin_package=plugin_package,
+                                                        dto_package=dto_package))
     dto_file.flush()
     dto_file.close()