Below code that i have has multiple else if conditions. Due to this when i run code using sonar cube it is saying "Refactor this method to reduce its Cognitive Complexity from 31 to the 15 allowed." Can Some one help me to reduce cognitive complexity from 31 to 15.
private final String method1(){
if(!StringUtils.isEmpty(stringvariable)){
if(stringvariable.equals("str1") || stringvariable.equals("str2") || stringvariable.equals("str3") ){
Stringvariable1 = "val1";
}
else if(stringvariable.equals("str4") || stringvariable.equals("str5") ){
Stringvariable1 = "val2";
}
else if(stringvariable.equals("str6") || stringvariable.equals("str7") || stringvariable.equals("str8")){
Stringvariable1 = "val3";
}
else if(stringvariable.equals("str9") || stringvariable.equals("str10") || stringvariable.equals("str11")){
Stringvariable1 = "val4";
}
else if(stringvariable.equals("str12") || stringvariable.equals("str13") || stringvariable.equals("str14")){
Stringvariable1 = "val5";
}
else if(stringvariable.equals("str15")){
Stringvariable1 = "val6";
}
else if(stringvariable.equals("str16") || stringvariable.equals("str17") || stringvariable.equals("str18") || stringvariable.equals("str19")){
Stringvariable1 = "val7";
}
else if(stringvariable.equals("str20") || stringvariable.equals("str21") ||stringvariable.equals("str22")){
Stringvariable1 = "val8";
}
else if(stringvariable.equals("str23") || stringvariable.equals("str24") || stringvariable.equals("str25") || stringvariable.equals("str26")){
Stringvariable1 = "val9";
}
else if(stringvariable.equals("str27") || stringvariable.equals("str28")){
Stringvariable1 = "val10";
}
else if(stringvariable.equals("str29") || stringvariable.equals("str30")){
Stringvariable1 = "val11";
}
else if(stringvariable.equals("str31")){
Stringvariable1 = "val12";
}
else if(stringvariable.equals("str32")){
Stringvariable1 = "val13";
}
else if(stringvariable.equals("str33") || stringvariable.equals("str34") || stringvariable.equals("str35") || stringvariable.equals("str36")){
Stringvariable1 = "val14";
}
else if(stringvariable.equals("str37")){
Stringvariable1 = "val15";
}
else if(StringUtils.isEmpty(stringvariable) ){
Stringvariable1 = "val16";
}
else {
Stringvariable1 = "val17";
}
}
else{
Stringvariable1 = "val18";
}
return Stringvariable1;
}