end
if effective_supers == 0 then
- if java_class.class_type.package_name == "java.lang.Object" or
+ if java_class.class_type.java_full_name == "java.lang.Object" or
not model.knows_the_object_class then
supers.add "super JavaObject"
else supers.add "super Java_lang_Object"
# Build the call in Java
var java_call
if is_static == true then
- java_call = java_class.class_type.package_name
+ java_call = java_class.class_type.java_full_name
else java_call = "self"
java_call += ".{java_method_id}({java_args.join(", ")})"
var recv
if attribute.is_static then
- recv = java_class.class_type.package_name
+ recv = java_class.class_type.java_full_name
else recv = "self"
# Tabulation
file_out.write """
# Java constructor: {{{java_class.class_type.extern_equivalent}}}
{{{c}}} new {{{name}}}{{{nit_params_s}}} in "Java" `{
-{{{c}}} return new {{{java_class.class_type.package_name}}}({{{java_params_s}}});
+{{{c}}} return new {{{java_class.class_type.java_full_name}}}({{{java_params_s}}});
{{{c}}} `}
"""
# Short name of the class, mangled to remove `$` (e.g. `Set`)
fun id: String do return identifier.last.replace("$", "")
- # Full name of this class as used in an importation (e.g. `java.lang.Set`)
- fun package_name: String do return identifier.join(".").replace("$", ".")
+ # Full name of this class as used in java code (e.g. `java.lang.Set`)
+ fun java_full_name: String do return identifier.join(".").replace("$", ".")
# Full name of this class as used by jni (e.g. `android.graphics.BitmapFactory$Options`)
fun jni_full_name: String do return identifier.join(".")
# Full name of this class with arrays and generic values (e.g. `java.lang.Set<E>[]`)
redef fun to_s do
- var id = self.package_name
+ var id = self.java_full_name
if self.is_primitive_array then
id += "[]" * array_dimension
# Comparison based on fully qualified named
redef fun ==(other) do return other isa JavaType and
- self.package_name == other.package_name and
+ self.java_full_name == other.java_full_name and
self.array_dimension == other.array_dimension
- redef fun hash do return self.package_name.hash
+ redef fun hash do return self.java_full_name.hash
end
class NitType
# Add a class in `classes`
fun add_class(jclass: JavaClass)
do
- var key = jclass.class_type.package_name
+ var key = jclass.class_type.java_full_name
classes[key] = jclass
end
end
# Is being wrapped in this pass?
- var key = jtype.package_name
+ var key = jtype.java_full_name
if classes.keys.has(key) then
if jtype.array_dimension <= opt_arrays.value then
var nit_type = new NitType(jtype.extern_name)
# Remove unavailable super classes
for super_type in super_classes.reverse_iterator do
# Is the super class available?
- if not all_classes.keys.has(super_type.package_name) then super_classes.remove(super_type)
+ if not all_classes.keys.has(super_type.java_full_name) then super_classes.remove(super_type)
end
# If the is no explicit supers, add `java.lang.Object` (if it is known)
for super_type in super_classes do
# Is the super class available?
- if not all_classes.keys.has(super_type.package_name) then continue
+ if not all_classes.keys.has(super_type.java_full_name) then continue
- var super_class = all_classes[super_type.package_name]
+ var super_class = all_classes[super_type.java_full_name]
class_hierarchy.add_edge(java_class, super_class)
end
end