contrib/jwrapper: revamp class header generation
authorAlexis Laferrière <alexis.laf@xymus.net>
Wed, 29 Jul 2015 18:18:52 +0000 (14:18 -0400)
committerAlexis Laferrière <alexis.laf@xymus.net>
Wed, 5 Aug 2015 01:37:53 +0000 (21:37 -0400)
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

contrib/jwrapper/src/code_generator.nit

index 9938881..41346e7 100644 (file)
@@ -72,7 +72,7 @@ class CodeGenerator
                        # Skip classes with an invalid name at the Java language level
                        if jclass.class_type.extern_equivalent.has("-") then continue
 
-                       generate_class_header(jclass.class_type)
+                       generate_class_header(jclass)
 
                        for id, signatures in jclass.methods do
                                for signature in signatures do if not signature.is_static then
@@ -151,12 +151,19 @@ class CodeGenerator
 # This code has been generated using `jwrapper`
 """ is writable
 
-       private fun generate_class_header(jtype: JavaType)
+       private fun generate_class_header(java_class: JavaClass)
        do
-               var nit_type = model.java_to_nit_type(jtype)
-               file_out.write "# Java class: {jtype}\n"
-               file_out.write "extern class {nit_type} in \"Java\" `\{ {jtype.extern_equivalent} `\}\n"
-               file_out.write "\tsuper JavaObject\n\n"
+               var java_type = java_class.class_type
+               var nit_type = model.java_to_nit_type(java_type)
+
+               var supers = ["super JavaObject"]
+
+               file_out.write """
+# Java class: {{{java_type}}}
+extern class {{{nit_type}}} in "Java" `{ {{{java_type.extern_equivalent}}} `}
+       {{{supers.join("\n\t")}}}
+
+"""
        end
 
        private fun generate_unknown_class_header(jtype: JavaType)