class JavaVisitor
super Visitor
- var converter: JavaTypeConverter
-
# Model of all the analyzed classes
var model: JavaModel
var class_type: JavaType is noinit
var variable_id = ""
- var variable_type = new JavaType(self.converter) is lazy
+ var variable_type = new JavaType is lazy
var is_generic_param = false
var is_generic_id = false
var is_primitive_array = false
var method_id = ""
- var method_return_type = new JavaType(self.converter) is lazy
+ var method_return_type = new JavaType is lazy
var method_params = new Array[JavaType]
var param_index = 0
do
v.java_class = new JavaClass
v.model.classes.add v.java_class
- v.class_type = new JavaType(v.converter)
+ v.class_type = new JavaType
v.declaration_type = "class_header"
v.declaration_element = "id"
v.method_params.clear
v.method_id = ""
- v.method_return_type = new JavaType(v.converter)
+ v.method_return_type = new JavaType
end
end
v.java_class.attributes[v.variable_id] = v.variable_type
v.variable_id = ""
- v.variable_type = new JavaType(v.converter)
+ v.variable_type = new JavaType
end
end
if v.declaration_type == "method" then
if v.declaration_element == "parameter_list" then
if v.is_generic_param then
- v.method_params[v.param_index].generic_params.add(new JavaType(v.converter))
+ v.method_params[v.param_index].generic_params.add new JavaType
super
v.gen_params_index += 1
else
- v.method_params.add(new JavaType(v.converter))
+ v.method_params.add new JavaType
super
end
else if v.declaration_element == "return_type" and v.is_generic_param then
- v.method_return_type.generic_params.add(new JavaType(v.converter))
+ v.method_return_type.generic_params.add new JavaType
super
end
else if v.declaration_type == "variable" then
if v.declaration_element == "type" and v.is_generic_param then
- v.variable_type.generic_params.add(new JavaType(v.converter))
+ v.variable_type.generic_params.add new JavaType
super
import jtype_converter
class JavaType
- private var converter: JavaTypeConverter
var identifier = new Array[String]
var generic_params: nullable Array[JavaType] = null
var is_void = false
fun full_id: String do return identifier.join(".")
fun id: String do return identifier.last.replace("$", "")
- init(converter: JavaTypeConverter) do self.converter = converter
-
fun return_cast: String do return converter.cast_as_return(self.id)
fun param_cast: String
# Model of a single Java class
class JavaClass
# Type of this class
- var class_type = new JavaType(new JavaTypeConverter)
+ var class_type = new JavaType
# Attributes of this class
var attributes = new HashMap[String, JavaType]