- for idx, struct_line in enumerate(tag_field_lines):
- if idx != 0 and idx < len(tag_field_lines) - 3:
- var_name = struct_line.strip(' ,')[len(struct_name) + 1:]
- out_java += ("\t\texport class " + var_name + " extends " + struct_name + " {\n")
- java_hu_subclasses = java_hu_subclasses + "export class " + var_name + " extends " + java_hu_type + " {\n"
- out_java_enum += ("\t\tif (raw_val instanceof bindings." + struct_name + "." + var_name + ") {\n")
- out_java_enum += ("\t\t\treturn new " + var_name + "(this.ptr, raw_val);\n")
- init_meth_jty_str = ""
- init_meth_params = ""
- init_meth_body = ""
- hu_conv_body = ""
- if "LDK" + var_name in union_enum_items:
- enum_var_lines = union_enum_items["LDK" + var_name]
- for idx, field in enumerate(enum_var_lines):
- if idx != 0 and idx < len(enum_var_lines) - 2:
- field_ty = map_type(field.strip(' ;'), False, None, False, True)
- out_java += ("\t\t\tpublic " + field_ty.java_ty + " " + field_ty.arg_name + ";\n")
- java_hu_subclasses = java_hu_subclasses + "\tpublic " + field_ty.arg_name + f": {field_ty.java_hu_ty};\n"
- if field_ty.to_hu_conv is not None:
- hu_conv_body = hu_conv_body + "\t\tconst " + field_ty.arg_name + f": {field_ty.java_ty} = obj." + field_ty.arg_name + ";\n"
- hu_conv_body = hu_conv_body + "\t\t" + field_ty.to_hu_conv.replace("\n", "\n\t\t\t") + "\n"
- hu_conv_body = hu_conv_body + "\t\tthis." + field_ty.arg_name + " = " + field_ty.to_hu_conv_name + ";\n"
- else:
- hu_conv_body = hu_conv_body + "\t\tthis." + field_ty.arg_name + " = obj." + field_ty.arg_name + ";\n"
- init_meth_jty_str = init_meth_jty_str + field_ty.java_fn_ty_arg
- if idx > 1:
- init_meth_params = init_meth_params + ", "
- init_meth_params = init_meth_params + field_ty.java_ty + " " + field_ty.arg_name
- init_meth_body = init_meth_body + "this." + field_ty.arg_name + " = " + field_ty.arg_name + "; "
- out_java += ("\t\t\t" + var_name + "(" + init_meth_params + ") { ")
- out_java += (init_meth_body)
- out_java += ("}\n")
- out_java += ("\t\t}\n")
- out_java_enum += ("\t\t}\n")
- java_hu_subclasses = java_hu_subclasses + "\tprivate constructor(ptr: number, obj: bindings." + struct_name + "." + var_name + ") {\n\t\tsuper(null, ptr);\n"
- java_hu_subclasses = java_hu_subclasses + hu_conv_body
- java_hu_subclasses = java_hu_subclasses + "\t}\n}\n"
- init_meth_jty_strs[var_name] = init_meth_jty_str
+ for var in variant_list:
+ out_java += ("\t\texport class " + var.var_name + " extends " + struct_name + " {\n")
+ java_hu_subclasses = java_hu_subclasses + "export class " + var.var_name + " extends " + java_hu_type + " {\n"
+ out_java_enum += ("\t\tif (raw_val instanceof bindings." + struct_name + "." + var.var_name + ") {\n")
+ out_java_enum += ("\t\t\treturn new " + var.var_name + "(this.ptr, raw_val);\n")
+ init_meth_params = ""
+ init_meth_body = ""
+ hu_conv_body = ""
+ for idx, field_ty in enumerate(var.fields):
+ out_java += ("\t\t\tpublic " + field_ty.java_ty + " " + field_ty.arg_name + ";\n")
+ java_hu_subclasses = java_hu_subclasses + "\tpublic " + field_ty.arg_name + f": {field_ty.java_hu_ty};\n"
+ if field_ty.to_hu_conv is not None:
+ hu_conv_body = hu_conv_body + "\t\tconst " + field_ty.arg_name + f": {field_ty.java_ty} = obj." + field_ty.arg_name + ";\n"
+ hu_conv_body = hu_conv_body + "\t\t" + field_ty.to_hu_conv.replace("\n", "\n\t\t\t") + "\n"
+ hu_conv_body = hu_conv_body + "\t\tthis." + field_ty.arg_name + " = " + field_ty.to_hu_conv_name + ";\n"
+ else:
+ hu_conv_body = hu_conv_body + "\t\tthis." + field_ty.arg_name + " = obj." + field_ty.arg_name + ";\n"
+ if idx > 0:
+ init_meth_params = init_meth_params + ", "
+ init_meth_params = init_meth_params + field_ty.java_ty + " " + field_ty.arg_name
+ init_meth_body = init_meth_body + "this." + field_ty.arg_name + " = " + field_ty.arg_name + "; "
+ out_java += ("\t\t\t" + var.var_name + "(" + init_meth_params + ") { ")
+ out_java += (init_meth_body)
+ out_java += ("}\n")
+ out_java += ("\t\t}\n")
+ out_java_enum += ("\t\t}\n")
+ java_hu_subclasses = java_hu_subclasses + "\tprivate constructor(ptr: number, obj: bindings." + struct_name + "." + var.var_name + ") {\n\t\tsuper(null, ptr);\n"
+ java_hu_subclasses = java_hu_subclasses + hu_conv_body
+ java_hu_subclasses = java_hu_subclasses + "\t}\n}\n"