Reduce cyclomatic complexity of some methods
Extract loops to additional methods to simplify the code.
Change-Id: I46267fb2571de4fa641537ad2c59924efd801cd8
diff --git a/src/main/java/com/ericsson/gerrit/plugins/projectgroupstructure/DefaultAccessRights.java b/src/main/java/com/ericsson/gerrit/plugins/projectgroupstructure/DefaultAccessRights.java
index a4b56c1..17dedb6 100644
--- a/src/main/java/com/ericsson/gerrit/plugins/projectgroupstructure/DefaultAccessRights.java
+++ b/src/main/java/com/ericsson/gerrit/plugins/projectgroupstructure/DefaultAccessRights.java
@@ -33,6 +33,7 @@
import com.google.inject.Singleton;
import java.io.IOException;
import java.nio.file.Path;
+import java.util.Arrays;
import java.util.Set;
import java.util.regex.Pattern;
import org.eclipse.jgit.errors.ConfigInvalidException;
@@ -112,29 +113,34 @@
for (String refName : defaultAccessRightsConfig.getSubsections(ProjectConfig.ACCESS)) {
if (RefConfigSection.isValid(refName) && isValidRegex(refName)) {
AccessSection as = config.getAccessSection(refName, true);
- for (String varName :
- defaultAccessRightsConfig.getStringList(
- ProjectConfig.ACCESS, refName, "exclusiveGroupPermissions")) {
- for (String n : varName.split("[, \t]{1,}")) {
- if (Permission.isPermission(n)) {
- as.getPermission(n, true).setExclusiveGroup(true);
- }
- }
- }
- String ownerGroupName = getOwerGroupName(project);
- for (String value : defaultAccessRightsConfig.getNames(ProjectConfig.ACCESS, refName)) {
- if (Permission.isPermission(value)) {
- Permission perm = as.getPermission(value, true);
- setPermissionRules(ownerGroupName, perm, refName, value);
- } else {
- log.error("Invalid permission {}", value);
- }
- }
+ getPermissions(refName, as);
+ setPermissions(refName, as, getOwnerGroupName(project));
}
}
}
- private String getOwerGroupName(ProjectState project) {
+ private void getPermissions(String refName, AccessSection as) {
+ for (String varName :
+ defaultAccessRightsConfig.getStringList(
+ ProjectConfig.ACCESS, refName, "exclusiveGroupPermissions")) {
+ Arrays.stream(varName.split("[, \t]{1,}"))
+ .filter(Permission::isPermission)
+ .forEach(n -> as.getPermission(n, true).setExclusiveGroup(true));
+ }
+ }
+
+ private void setPermissions(String refName, AccessSection as, String ownerGroupName) {
+ for (String value : defaultAccessRightsConfig.getNames(ProjectConfig.ACCESS, refName)) {
+ if (Permission.isPermission(value)) {
+ Permission perm = as.getPermission(value, true);
+ setPermissionRules(ownerGroupName, perm, refName, value);
+ } else {
+ log.error("Invalid permission {}", value);
+ }
+ }
+ }
+
+ private String getOwnerGroupName(ProjectState project) {
Set<AccountGroup.UUID> owners = project.getAllOwners();
if (!owners.isEmpty()) {
return groupCache.get(owners.iterator().next()).getName();