HONEYCOMB-10: jVpp - the new java API. C code and jar file generation
[vpp.git] / vpp-api / java / jvpp / gen / dto_gen.py
index 17fde68..378d279 100644 (file)
@@ -20,7 +20,11 @@ dto_template = Template("""
 package $base_package.$dto_package;
 
 /**
- * $docs
+ * <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 implements $base_package.$dto_package.$base_type {
 
@@ -36,8 +40,7 @@ send_template = Template("""    @Override
         return jvpp.$method_name($args);
     }\n""")
 
-
-def generate_dtos(func_list, base_package, dto_package):
+def generate_dtos(func_list, base_package, dto_package, inputfile):
     """ Generates dto objects in a dedicated package """
     print "Generating DTOs"
 
@@ -60,6 +63,7 @@ def generate_dtos(func_list, base_package, dto_package):
         methods = ""
         base_type = ""
         if util.is_reply(camel_case_dto_name):
+            description = "vpe.api reply DTO"
             request_dto_name = get_request_name(camel_case_dto_name, func['name'])
             if util.is_details(camel_case_dto_name):
                 # FIXME assumption that dump calls end with "Dump" suffix. Not enforced in vpe.api
@@ -75,11 +79,15 @@ def generate_dtos(func_list, base_package, dto_package):
                                                args=args)
             if util.is_dump(camel_case_dto_name):
                 base_type += "JVppDump"
+                description = "vpe.api dump request DTO"
             else:
                 base_type += "JVppRequest"
+                description = "vpe.api request DTO"
 
         dto_file = open(dto_path, 'w')
-        dto_file.write(dto_template.substitute(docs='Generated from ' + str(func),
+        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,
@@ -89,13 +97,12 @@ def generate_dtos(func_list, base_package, dto_package):
         dto_file.flush()
         dto_file.close()
 
-    flush_dump_reply_dtos()
+    flush_dump_reply_dtos(inputfile)
 
 
 dump_dto_suffix = "ReplyDump"
 dump_reply_artificial_dtos = {}
 
-
 # Returns request name or special one from unconventional_naming_rep_req map
 def get_request_name(camel_case_dto_name, func_name):
     return util.underscore_to_camelcase_upper(
@@ -103,12 +110,14 @@ def get_request_name(camel_case_dto_name, func_name):
         else util.remove_reply_suffix(camel_case_dto_name)
 
 
-def flush_dump_reply_dtos():
+def flush_dump_reply_dtos(inputfile):
     for dump_reply_artificial_dto in dump_reply_artificial_dtos.values():
         dto_path = os.path.join(dump_reply_artificial_dto['dto_package'],
                                 dump_reply_artificial_dto['cls_name'] + ".java")
         dto_file = open(dto_path, 'w')
-        dto_file.write(dto_template.substitute(docs=dump_reply_artificial_dto['docs'],
+        dto_file.write(dto_template.substitute(inputfile=inputfile,
+                                               description="vpe.api dump reply wrapper",
+                                               docs=dump_reply_artificial_dto['docs'],
                                                cls_name=dump_reply_artificial_dto['cls_name'],
                                                fields=dump_reply_artificial_dto['fields'],
                                                methods=dump_reply_artificial_dto['methods'],
@@ -133,7 +142,7 @@ def generate_dump_reply_dto(request_dto_name, base_package, dto_package, camel_c
         dump_reply_artificial_dtos[request_dto_name]['fields'] = \
             dump_reply_artificial_dtos[request_dto_name]['fields'] + '\n' + fields
     else:
-        dump_reply_artificial_dtos[request_dto_name] = ({'docs': 'Dump reply wrapper generated from ' + str(func),
+        dump_reply_artificial_dtos[request_dto_name] = ({'docs': util.api_message_to_javadoc(func),
                                                          'cls_name': cls_name,
                                                          'fields': fields,
                                                          'methods': "",