Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Java code PMD Complains about Cyclomatic Complexity , of 20

When i ran PMD on my Java Code , one of the Error Message it is showing is "The class STWeb has a Cyclomatic Complexity , of 20 " . Typically my java class is of this way

public class STWeb implements STWebService {

  public String getData(RequestData request)
  {
    validate(request);
  }

  public boolean validate(Data[] formdata)
  {
    if(formdata.length==1)
    //do this 
    else if(formdata.length==3)
    //do this 
    else if(formdata.length==4)
    //do this 
    else if(formdata.length>4)
    //do this 
    else if(formdata.length==2)
    {
      if(formdata[0].getName.equals("OIY"))
      {
      }
    / And many more if else here 
    }
  }
}

As you can see , as per my business requirements , i need to code the class with many if's and if else so the reason the cyclocomplexity has ncreased , please tell me what is feasible approach as per the standard for this ??

like image 421
Pawan Avatar asked Dec 12 '22 08:12

Pawan


1 Answers

Cyclomatic Complexity measurements shouldn't be used for quality control, but rather as an indicator/warning for bad code. You should focus more on the code behind it rather than the value of the CC itself.

Although you can reduce the complexity of the validate method by splitting it into smaller methods through refactoring, the class as a whole will still have the same CC.

As long as the code is readable and makes sense to the next person that has to look at it, then having a higher CC shouldn't matter so much.

like image 177
Deco Avatar answered Jan 12 '23 23:01

Deco