private void setPermissionRules()

in src/main/java/com/ericsson/gerrit/plugins/projectgroupstructure/DefaultAccessRights.java [173:210]


  private void setPermissionRules(
      String ownerGroupName, Permission.Builder perm, String refName, String value) {
    for (String ruleString :
        defaultAccessRightsConfig.getStringList(ProjectConfig.ACCESS, refName, value)) {
      PermissionRule.Builder rule;
      try {
        rule =
            PermissionRule.fromString(
                    ruleString.replaceAll(Pattern.quote(OWNER_TOKEN), ownerGroupName),
                    Permission.hasRange(value))
                .toBuilder();

      } catch (IllegalArgumentException notRule) {
        log.error(
            "Invalid rule in {}{}.{}: {}",
            ProjectConfig.ACCESS,
            refName != null ? "." + refName : "",
            value,
            notRule.getMessage());
        continue;
      }

      if (rule.getGroup().getUUID() == null) {
        // this means that group is not already in the groups file, so
        // we need to check if group exist if if it does, get its
        // uuid.
        Optional<InternalGroup> group =
            groupCache.get(AccountGroup.nameKey(rule.getGroup().getName()));

        if (!group.isPresent()) {
          log.error("Group {} not found", rule.getGroup().getName());
          continue;
        }
        rule.setGroup(GroupReference.create(group.get().getGroupUUID(), rule.getGroup().getName()));
      }
      perm.add(rule);
    }
  }