contrib/objcwrapper: fix name of type related methods
[nit.git] / contrib / objcwrapper / src / objc_generator.nit
index fb9e4ab..845a3b1 100644 (file)
@@ -42,7 +42,7 @@ redef class Sys
                "Wrap `init...` constructors as Nit methods instead of Nit constructors",
                "--init-as-methods")
 
-       private var nit_to_java_types: Map[String, String] is lazy do
+       private var objc_to_nit_types: Map[String, String] is lazy do
                var types = new HashMap[String, String]
                types["char"] = "Byte"
                types["short"] = "Int"
@@ -67,6 +67,11 @@ redef class Sys
        end
 end
 
+redef class ObjcModel
+       redef fun knows_type(objc_type) do return super or
+               objc_to_nit_types.keys.has(objc_type)
+end
+
 # Wrapper generator
 class CodeGenerator
 
@@ -128,6 +133,7 @@ extern class {{{classe.name}}} in "ObjC" `{ {{{classe.name}}} * `}
 
                # Methods
                for method in classe.methods do
+                       if not model.knows_all_types(method) then method.is_commented = true
 
                        if not opt_init_as_methods.value and method.is_init then continue
 
@@ -157,6 +163,8 @@ end
                for method in classe.methods do
                        if not method.is_init then continue
 
+                       if not model.knows_all_types(method) then method.is_commented = true
+
                        write_method_signature(method, file)
 
                                write_objc_init_call(classe.name, method, file)
@@ -165,6 +173,8 @@ end
 
        private fun write_attribute(attribute: ObjcAttribute, file: Writer)
        do
+               if not model.knows_type(attribute.return_type) then attribute.is_commented = true
+
                write_attribute_getter(attribute, file)
                # TODO write_attribute_setter if there is no `readonly` annotation
        end
@@ -172,7 +182,7 @@ end
        private fun write_attribute_getter(attribute: ObjcAttribute, file: Writer)
        do
                var nit_attr_name = attribute.name.to_snake_case
-               var nit_attr_type = attribute.return_type.to_nit_type
+               var nit_attr_type = attribute.return_type.objc_to_nit_type
 
                var c = attribute.comment_str
 
@@ -187,7 +197,7 @@ end
        private fun write_attribute_setter(attribute: ObjcAttribute, file: Writer)
        do
                var nit_attr_name = attribute.name.to_snake_case
-               var nit_attr_type = attribute.return_type.to_nit_type
+               var nit_attr_type = attribute.return_type.objc_to_nit_type
 
                var c = attribute.comment_str
 
@@ -222,7 +232,7 @@ end
                var params = new Array[String]
                for param in method.params do
                        if param.is_single then break
-                       params.add "{param.variable_name}: {param.return_type.to_nit_type}"
+                       params.add "{param.variable_name}: {param.return_type.objc_to_nit_type}"
                end
 
                var params_with_par = ""
@@ -231,7 +241,7 @@ end
                # Return
                var ret = ""
                if method.return_type != "void" and fun_keyword != "new" then
-                       ret = ": {method.return_type.to_nit_type}"
+                       ret = ": {method.return_type.objc_to_nit_type}"
                end
 
                file.write """
@@ -285,9 +295,9 @@ end
 
 redef class Text
        # Nit equivalent to this type
-       private fun to_nit_type: String
+       private fun objc_to_nit_type: String
        do
-               var types = sys.nit_to_java_types
+               var types = sys.objc_to_nit_types
 
                if types.has_key(self) then
                        return types[self]