var id = n_identifier.text
var return_jtype = n_type.to_java_type
+ # Generic parameters
+ var n_params = n_generic_parameters
+ var generic_params
+ if n_params != null then
+ generic_params = n_params.n_parameters.to_a
+ else generic_params = new Array[JavaType]
+
# Collect parameters
var n_parameters = n_parameters
var params
params = n_parameters.to_a
else params = new Array[JavaType]
- var method = new JavaMethod(is_static, return_jtype, params)
+ var method = new JavaMethod(is_static, return_jtype, params, generic_params)
v.java_class.methods[id].add method
end
end
params = n_parameters.to_a
else params = new Array[JavaType]
- var method = new JavaConstructor(params)
+ # Generic parameters
+ var n_params = n_generic_parameters
+ var generic_params
+ if n_params != null then
+ generic_params = n_params.n_parameters.to_a
+ else generic_params = new Array[JavaType]
+
+ var method = new JavaConstructor(params, generic_params)
v.java_class.constructors.add method
end
end
end
end
+redef class Nbase_type_extends
+ redef fun to_java_type do return n_generic_identifier.to_java_type
+end
+
+redef class Ngeneric_identifier
+ private fun to_java_type: JavaType is abstract
+end
+
+redef class Ngeneric_identifier_class
+ redef fun to_java_type do return n_full_class_name.to_java_type
+end
+
+redef class Ngeneric_identifier_wildcard
+ redef fun to_java_type
+ do
+ var jtype = new JavaType
+ jtype.identifier.add_all(["java", "lang", "Object"])
+ return jtype
+ end
+end
+
redef class Nfull_class_name
# All the identifiers composing this class name
private fun to_a: Array[String] is abstract
# Type of the arguments of the method
var params: Array[JavaType]
+
+ # Generic parameters of this method
+ var generic_params: Array[JavaType]
end
# An attribute in a Java class
class JavaConstructor
# Type of the parameters of this constructor
var params: Array[JavaType]
+
+ # Generic parameters of this constructor
+ var generic_params: Array[JavaType]
end
# A Nit module, use to import the referenced extern classes