1

Is there any way that I can reduce the usage of If else conditions in my Mapping Rules.I am making mapping rules. Is there any way that I store these rules in file and then read them from file, so that my code is optimized:

public String MappingCondition()
{
    if (double_first_word.equals(mem) && double_second_word.equals(zair)) {
        s.append(map_m_zair_with);
        flag1 = "true";
    } else if (double_first_word.equals(paish) && double_second_word.equals(wawoo)
            && ((!last_string_word.equals(wawoo))) && flag38 == "false") {
        member0 = a1.indexOf(paish);
        number0 = a1.indexOf(wawoo);
        s.append(map_paish_waoo_with);
        flag2 = "true";
    } else if (double_first_word.equals(ein) && double_second_word.equals(zabar)) {
        member1 = a1.indexOf(ein);
        number1 = a1.indexOf(zabar);
        s.append(map_aein_zbar_with);
        flag3 = "true";
    } else if (double_first_word.equals(alif) && double_second_word.equals(zabar)) {
        member2 = a1.indexOf(alif);
        number2 = a1.indexOf(zabar);
        s.append(map_alif_zabr_with);
        flag4 = "true";
    } else if (double_first_word.equals(kaff) && double_second_word.equals(lam)) {
        member3 = a1.indexOf(kaff);
        number3 = a1.indexOf(lam);
        s.append(map_kaf_lam_with);
        flag5 = "true";
    } else if (double_first_word.equals(mem) && double_second_word.equals(alif)) {
        member4 = a1.indexOf(mem);
        number4 = a1.indexOf(alif);
        s.append(map_mem_aif_with);
        flag6 = "true";
    } else if (double_first_word.equals(gim) && double_second_word.equals(alif)) {
        member5 = a1.indexOf(gim);
        number5 = a1.indexOf(alif);
        s.append(map_jem_alif_with);
        flag7 = "true";
    } else if (double_first_word.equals(ray) && double_second_word.equals(zair)) {
        member6 = a1.indexOf(ray);
        number6 = a1.indexOf(zair);
        s.append(map_ray_zair_with);
        flag8 = "true";
    } else if (double_first_word.equals(tay) && double_second_word.equals(zair)) {
        member7 = a1.indexOf(tay);
        number7 = a1.lastIndexOf(zair);
        s.append(map_tay_zair_with);
        flag9 = "true";
    } else if (double_first_word.equals(dal) && double_second_word.equals(alif)) {
        member8 = a1.indexOf(dal);
        number8 = a1.lastIndexOf(alif);
        s.append(map_daal_alif_with);
        flag10 = "true";
    } else if (double_first_word.equals(choti_ya) && double_second_word.equals(zabar)) {
        member9 = a1.indexOf(choti_ya);
        number9 = a1.indexOf(zabar);
        s.append(map_yay_zabar_with);
        flag11 = "true";
    } else if (double_first_word.equals(wawoo) && double_second_word.equals(alif)) {
        member10 = a1.indexOf(wawoo);
        number10 = a1.indexOf(alif);
        s.append(map_wao_alif_with);
        flag12 = "true";
    }

    return "TBD";
}
Sean Bright
  • 118,630
  • 17
  • 138
  • 146
Rauf javid
  • 77
  • 8

1 Answers1

0

In short, don't do it. Write, maintain and debug a rule engine is an overkill, and you're reinventing the wheel.

I would suggest to have a look at Drools

Have a look at creating a simple rule engine in java

Community
  • 1
  • 1
freedev
  • 25,946
  • 8
  • 108
  • 125