Please help reduce the cyclomatic complexity of this method. I don't really understand how this can be done, I need all the conditions in this method and obviously there are no duplicates.
private boolean isPropertyAccessed(AccessLevels readAccessLevel, Relationship relationship) {
boolean isAccessed1 = readAccessLevel.isAccessed1() && relationship.getAccessed1Relationship() == ACCESSED1;
boolean isAccessed2 = readAccessLevel.isAccessed2() && relationship.getAccessed2Relationship() == ACCESSED2;
boolean isAccessed3 = readAccessLevel.isAccessed3() && relationship.getAccessed3Relationship() == ACCESSED3;
boolean isAccessed4 = readAccessLevel.isAccessed4() && relationship.getAccessed4Relationship() == ACCESSED4;
boolean isAccessed5 = readAccessLevel.isAccessed5() && relationship.getAccessed5Relationship() == ACCESSED5;
boolean isAccessed6 = readAccessLevel.isAccessed6() && relationship.getAccessed6Relationship() == ACCESSED6;
return readAccessLevel.isAll() || isAccessed1 || isAccessed2 || isAccessed3
|| isAccessed4 || isAccessed5 || isAccessed6;
}
Thanks
You can use streams for your return statement to git rid of the sonar issue, but refactoring the whole thing might be a better idea
return Stream.of(readAccessLevel.isAll(),isAccessed1,isAccessed2,isAccessed3,
isAccessed4,isAccessed5,isAccessed6).anyMatch(Boolean.TRUE::equals);