import jtype_converter
class JavaType
+ super Cloneable
+
var identifier = new Array[String]
var generic_params: nullable Array[JavaType] = null
end
end
+ # Get a copy of `self`
+ redef fun clone
+ do
+ var jtype = new JavaType
+ jtype.identifier = identifier
+ jtype.generic_params = generic_params
+ jtype.is_void = is_void
+ jtype.is_vararg = is_vararg
+ jtype.array_dimension = array_dimension
+ return jtype
+ end
+
# Comparison based on fully qualified named
redef fun ==(other) do return other isa JavaType and
self.full_id == other.full_id and
var class_type: JavaType
# Attributes of this class
- var attributes = new HashMap[String, JavaType]
+ var attributes = new HashMap[String, JavaAttribute]
# Methods of this class organized by their name
var methods = new MultiHashMap[String, JavaMethod]
end
end
+# A property to a Java class
+abstract class JavaProperty
+
+ # Is this property marked static?
+ var is_static: Bool
+end
+
# A Java method, with its signature
class JavaMethod
+ super JavaProperty
+
# Type returned by the method
var return_type: JavaType
var params: Array[JavaType]
end
+# An attribute in a Java class
+class JavaAttribute
+ super JavaProperty
+
+ # Type of the attribute
+ var java_type: JavaType
+end
+
# A Java method, with its signature
class JavaConstructor
# Type of the parameters of this constructor