contrib/jwrapper: `JavaModel::classes` sort keys by string
authorAlexis Laferrière <alexis.laf@xymus.net>
Wed, 22 Jul 2015 18:44:07 +0000 (14:44 -0400)
committerAlexis Laferrière <alexis.laf@xymus.net>
Fri, 24 Jul 2015 13:44:24 +0000 (09:44 -0400)
Signed-off-by: Alexis Laferrière <alexis.laf@xymus.net>

contrib/jwrapper/src/code_generator.nit
contrib/jwrapper/src/javap_visitor.nit
contrib/jwrapper/src/model.nit

index 1d72739..2d6012c 100644 (file)
@@ -59,13 +59,13 @@ class CodeGenerator
                # All importations
                var imports = new HashSet[String]
                imports.add "import java\n"
-               for jclass in model.classes do
+               for key, jclass in model.classes do
                        for import_ in jclass.imports do imports.add "import android::{import_}\n"
                end
                file_out.write imports.join("\n")
                file_out.write "\n"
 
-               for jclass in model.classes do
+               for key, jclass in model.classes do
 
                        file_out.write gen_class_header(jclass.class_type)
 
index 3721b21..b8557d8 100644 (file)
@@ -50,7 +50,7 @@ redef class Nclass_declaration
                var jtype = n_full_class_name.to_java_type
 
                v.java_class = new JavaClass(jtype)
-               v.model.classes.add v.java_class
+               v.model.add_class v.java_class
 
                # Visit all properties
                super
index ffc68d1..1aebcf2 100644 (file)
@@ -236,7 +236,14 @@ class JavaModel
        var unknown_types = new HashSet[JavaType]
 
        # All analyzed classes
-       var classes = new Array[JavaClass]
+       var classes = new HashMap[String, JavaClass]
+
+       # Add a class in `classes`
+       fun add_class(jclass: JavaClass)
+       do
+               var key = jclass.class_type.full_id
+               classes[key] = jclass
+       end
 end
 
 # A Java method, with its signature