to_hu_conv = None
to_hu_conv_name = None
if subty.to_hu_conv is not None:
- base_ty = ty_info.subty.java_hu_ty.split("[")[0].split("<")[0]
- to_hu_conv = self.consts.var_decl_statement(ty_info.java_hu_ty, conv_name + "_arr", "new " + base_ty + "[" + arr_name + ".length]")
- if "[" in ty_info.subty.java_hu_ty.split("<")[0]:
- # Do a bit of a dance to move any excess [] to the end
- to_hu_conv += "[" + ty_info.subty.java_hu_ty.split("<")[0].split("[")[1]
+ to_hu_conv = self.consts.var_decl_statement(ty_info.java_hu_ty, conv_name + "_arr", self.consts.constr_hu_array(ty_info, arr_name + ".length"))
to_hu_conv += ";\n" + self.consts.for_n_in_range(idxc, "0", arr_name + ".length") + "\n"
to_hu_conv += "\t" + self.consts.var_decl_statement(subty.java_ty, conv_name, arr_name + "[" + idxc + "]") + ";\n"
to_hu_conv += "\t" + subty.to_hu_conv.replace("\n", "\n\t") + "\n"
def var_decl_statement(self, ty_string, var_name, statement):
return ty_string + " " + var_name + " = " + statement
+ def constr_hu_array(self, ty_info, arr_len):
+ base_ty = ty_info.subty.java_hu_ty.split("[")[0].split("<")[0]
+ conv = "new " + base_ty + "[" + arr_len + "]"
+ if "[" in ty_info.subty.java_hu_ty.split("<")[0]:
+ # Do a bit of a dance to move any excess [] to the end
+ conv += "[" + ty_info.subty.java_hu_ty.split("<")[0].split("[")[1]
+ return conv
+
def for_n_in_range(self, n, minimum, maximum):
return "for (int " + n + " = " + minimum + "; " + n + " < " + maximum + "; " + n + "++) {"
def for_n_in_arr(self, n, arr_name, arr_elem_ty):
def init_str(self):
return ""
+ def constr_hu_array(self, ty_info, arr_len):
+ return "new Array(" + arr_len + ").fill(null)"
+
def var_decl_statement(self, ty_string, var_name, statement):
return "const " + var_name + ": " + ty_string + " = " + statement