Make AccountsSection an AutoValue
Change-Id: Id4af67300100cba89eca5401dd12cb872595da98
diff --git a/java/com/google/gerrit/server/project/AccountsSection.java b/java/com/google/gerrit/server/project/AccountsSection.java
index 30bd244..04f63f7 100644
--- a/java/com/google/gerrit/server/project/AccountsSection.java
+++ b/java/com/google/gerrit/server/project/AccountsSection.java
@@ -14,22 +14,16 @@
package com.google.gerrit.server.project;
+import com.google.auto.value.AutoValue;
import com.google.common.collect.ImmutableList;
import com.google.gerrit.common.data.PermissionRule;
-import java.util.ArrayList;
import java.util.List;
-public class AccountsSection {
- protected List<PermissionRule> sameGroupVisibility;
+@AutoValue
+public abstract class AccountsSection {
+ public abstract ImmutableList<PermissionRule> getSameGroupVisibility();
- public ImmutableList<PermissionRule> getSameGroupVisibility() {
- if (sameGroupVisibility == null) {
- sameGroupVisibility = ImmutableList.of();
- }
- return ImmutableList.copyOf(sameGroupVisibility);
- }
-
- public void setSameGroupVisibility(List<PermissionRule> sameGroupVisibility) {
- this.sameGroupVisibility = new ArrayList<>(sameGroupVisibility);
+ public static AccountsSection create(List<PermissionRule> sameGroupVisibility) {
+ return new AutoValue_AccountsSection(ImmutableList.copyOf(sameGroupVisibility));
}
}
diff --git a/java/com/google/gerrit/server/project/ProjectConfig.java b/java/com/google/gerrit/server/project/ProjectConfig.java
index 5ff1d83..16e7037 100644
--- a/java/com/google/gerrit/server/project/ProjectConfig.java
+++ b/java/com/google/gerrit/server/project/ProjectConfig.java
@@ -345,6 +345,10 @@
return accountsSection;
}
+ public void setAccountsSection(AccountsSection accountsSection) {
+ this.accountsSection = accountsSection;
+ }
+
public Map<String, List<String>> getExtensionPanelSections() {
return extensionPanelSections;
}
@@ -650,9 +654,9 @@
}
private void loadAccountsSection(Config rc) {
- accountsSection = new AccountsSection();
- accountsSection.setSameGroupVisibility(
- loadPermissionRules(rc, ACCOUNTS, null, KEY_SAME_GROUP_VISIBILITY, false));
+ accountsSection =
+ AccountsSection.create(
+ loadPermissionRules(rc, ACCOUNTS, null, KEY_SAME_GROUP_VISIBILITY, false));
}
private void loadExtensionPanelSections(Config rc) {
diff --git a/javatests/com/google/gerrit/server/project/ProjectConfigTest.java b/javatests/com/google/gerrit/server/project/ProjectConfigTest.java
index 3686e4e..2d31acf 100644
--- a/javatests/com/google/gerrit/server/project/ProjectConfigTest.java
+++ b/javatests/com/google/gerrit/server/project/ProjectConfigTest.java
@@ -309,9 +309,9 @@
Permission.Builder submit = section.upsertPermission(Permission.SUBMIT);
submit.add(PermissionRule.builder(cfg.resolve(staff)));
});
- cfg.getAccountsSection()
- .setSameGroupVisibility(
- Collections.singletonList(PermissionRule.create(cfg.resolve(staff))));
+ cfg.setAccountsSection(
+ AccountsSection.create(
+ Collections.singletonList(PermissionRule.create(cfg.resolve(staff)))));
ContributorAgreement.Builder ca = cfg.getContributorAgreement("Individual").toBuilder();
ca.setAccepted(ImmutableList.of(PermissionRule.create(cfg.resolve(staff))));
ca.setAutoVerify(null);
@@ -698,7 +698,7 @@
update(rev);
ProjectConfig cfg = read(rev);
- cfg.getAccountsSection().setSameGroupVisibility(ImmutableList.of());
+ cfg.setAccountsSection(AccountsSection.create(ImmutableList.of()));
rev = commit(cfg);
assertThat(text(rev, "project.config"))
.isEqualTo(