What is NPath Complexity and how to avoid it?

java, pmd, sonarqube

Solution

This Link: https://modess.io/npath-complexity-cyclomatic-complexity-explained/

explains it very well as:

The NPath complexity of a method is the number of acyclic execution paths through that method.

This means you should avoid long functions with a lot of (nested) if/else statements.

So my advice would be:

- Split your functions into smaller ones

- Eliminate useless if/else-statements where possible

Problem

In this line: ``` public Map getAll(BusinessTargetPK pkBusinessTargetId) throws Exception ``` I am getting this error: NPath Complexity is 32,768 (max allowed is 200) And in this line: ``` public Map getAll( Long RLE_ROLE_ID ) throws Exception { ``` I get this error: The method getAll() has an NPath complexity of 2048 I am completely unaware of what is NPath Complexity and what it means. Can someone give advice how to avoid this type of error?

Original source