def generate_java()

in library/scripts/find_movable_strings.py [0:0]


def generate_java(string_pack_ids):
    if len(string_pack_ids) <= MAX_IDS_PER_METHOD:
        # No need for sub-methods, just create the whole array in the main method
        return generate_java_internal(string_pack_ids, "getStringPacksMapping")

    result = []
    result += " " * 2 + "private static int[] getStringPacksMapping() {\n"
    result += (
        " " * 6 + "final int[] result = new int[" + str(len(string_pack_ids)) + "];\n"
    )
    result += " " * 6 + "int[] part;\n"

    parts = math.ceil(len(string_pack_ids) / MAX_IDS_PER_METHOD)
    for i in range(0, parts):
        result += " " * 6 + "part = getStringPacksMappingPart" + str(i) + "();\n"
        result += (
            " " * 6
            + "System.arraycopy(part, 0, result, "
            + str(MAX_IDS_PER_METHOD * i)
            + ", part.length);\n"
        )

    result += " " * 6 + "return result;\n"
    result += " " * 2 + "}\n"
    result += "\n"

    # Create submethods
    for i in range(0, parts):
        start = i * MAX_IDS_PER_METHOD
        end = start + MAX_IDS_PER_METHOD
        result += generate_java_internal(
            string_pack_ids[start:end], "getStringPacksMappingPart%s" % i
        )

    return result