UserPreferencesConverter: use ProtoConverter interface
Release-Notes: skip
Google-Bug-Id: b/335372403
Change-Id: I1ef2d87c1c4ba9e141bfb56ff15ea3d257f3673b
diff --git a/java/com/google/gerrit/server/config/PreferencesParserUtil.java b/java/com/google/gerrit/server/config/PreferencesParserUtil.java
index 93df926..ecb0868 100644
--- a/java/com/google/gerrit/server/config/PreferencesParserUtil.java
+++ b/java/com/google/gerrit/server/config/PreferencesParserUtil.java
@@ -17,6 +17,9 @@
import static com.google.gerrit.server.config.ConfigUtil.loadSection;
import static com.google.gerrit.server.config.ConfigUtil.mergeWithDefaults;
import static com.google.gerrit.server.config.ConfigUtil.skipField;
+import static com.google.gerrit.server.config.UserPreferencesConverter.DiffPreferencesInfoConverter.DIFF_PREFERENCES_INFO_CONVERTER;
+import static com.google.gerrit.server.config.UserPreferencesConverter.EditPreferencesInfoConverter.EDIT_PREFERENCES_INFO_CONVERTER;
+import static com.google.gerrit.server.config.UserPreferencesConverter.GeneralPreferencesInfoConverter.GENERAL_PREFERENCES_INFO_CONVERTER;
import static com.google.gerrit.server.git.UserConfigSections.CHANGE_TABLE;
import static com.google.gerrit.server.git.UserConfigSections.CHANGE_TABLE_COLUMN;
import static com.google.gerrit.server.git.UserConfigSections.KEY_ID;
@@ -350,8 +353,7 @@
@Override
public GeneralPreferencesInfo fromUserPreferences(UserPreferences p) {
- return UserPreferencesConverter.GeneralPreferencesInfoConverter.fromProto(
- p.getGeneralPreferencesInfo());
+ return GENERAL_PREFERENCES_INFO_CONVERTER.fromProto(p.getGeneralPreferencesInfo());
}
@Override
@@ -381,8 +383,7 @@
@Override
public EditPreferencesInfo fromUserPreferences(UserPreferences p) {
- return UserPreferencesConverter.EditPreferencesInfoConverter.fromProto(
- p.getEditPreferencesInfo());
+ return EDIT_PREFERENCES_INFO_CONVERTER.fromProto(p.getEditPreferencesInfo());
}
@Override
@@ -412,8 +413,7 @@
@Override
public DiffPreferencesInfo fromUserPreferences(UserPreferences p) {
- return UserPreferencesConverter.DiffPreferencesInfoConverter.fromProto(
- p.getDiffPreferencesInfo());
+ return DIFF_PREFERENCES_INFO_CONVERTER.fromProto(p.getDiffPreferencesInfo());
}
@Override
diff --git a/java/com/google/gerrit/server/config/UserPreferencesConverter.java b/java/com/google/gerrit/server/config/UserPreferencesConverter.java
index 7eae7d0..912abc4 100644
--- a/java/com/google/gerrit/server/config/UserPreferencesConverter.java
+++ b/java/com/google/gerrit/server/config/UserPreferencesConverter.java
@@ -17,12 +17,14 @@
import static com.google.common.collect.ImmutableList.toImmutableList;
import com.google.gerrit.common.Nullable;
+import com.google.gerrit.entities.converter.ProtoConverter;
import com.google.gerrit.extensions.client.DiffPreferencesInfo;
import com.google.gerrit.extensions.client.EditPreferencesInfo;
import com.google.gerrit.extensions.client.GeneralPreferencesInfo;
import com.google.gerrit.extensions.client.MenuItem;
import com.google.gerrit.proto.Entities.UserPreferences;
import com.google.protobuf.Message;
+import com.google.protobuf.Parser;
import com.google.protobuf.ProtocolMessageEnum;
import java.util.function.Function;
@@ -33,8 +35,12 @@
* equivalents in Spanner.
*/
public final class UserPreferencesConverter {
- public static final class GeneralPreferencesInfoConverter {
- public static UserPreferences.GeneralPreferencesInfo toProto(GeneralPreferencesInfo info) {
+ public enum GeneralPreferencesInfoConverter
+ implements ProtoConverter<UserPreferences.GeneralPreferencesInfo, GeneralPreferencesInfo> {
+ GENERAL_PREFERENCES_INFO_CONVERTER;
+
+ @Override
+ public UserPreferences.GeneralPreferencesInfo toProto(GeneralPreferencesInfo info) {
UserPreferences.GeneralPreferencesInfo.Builder builder =
UserPreferences.GeneralPreferencesInfo.newBuilder();
builder = setIfNotNull(builder, builder::setChangesPerPage, info.changesPerPage);
@@ -116,7 +122,8 @@
return builder.build();
}
- public static GeneralPreferencesInfo fromProto(UserPreferences.GeneralPreferencesInfo proto) {
+ @Override
+ public GeneralPreferencesInfo fromProto(UserPreferences.GeneralPreferencesInfo proto) {
GeneralPreferencesInfo res = new GeneralPreferencesInfo();
res.changesPerPage = proto.hasChangesPerPage() ? proto.getChangesPerPage() : null;
res.downloadScheme = proto.hasDownloadScheme() ? proto.getDownloadScheme() : null;
@@ -177,6 +184,11 @@
return res;
}
+ @Override
+ public Parser<UserPreferences.GeneralPreferencesInfo> getParser() {
+ return UserPreferences.GeneralPreferencesInfo.parser();
+ }
+
private static UserPreferences.GeneralPreferencesInfo.MenuItem menuItemToProto(
MenuItem javaItem) {
UserPreferences.GeneralPreferencesInfo.MenuItem.Builder builder =
@@ -200,12 +212,14 @@
proto.hasTarget() ? proto.getTarget().trim() : null,
proto.hasId() ? proto.getId().trim() : null);
}
-
- private GeneralPreferencesInfoConverter() {}
}
- public static final class DiffPreferencesInfoConverter {
- public static UserPreferences.DiffPreferencesInfo toProto(DiffPreferencesInfo info) {
+ public enum DiffPreferencesInfoConverter
+ implements ProtoConverter<UserPreferences.DiffPreferencesInfo, DiffPreferencesInfo> {
+ DIFF_PREFERENCES_INFO_CONVERTER;
+
+ @Override
+ public UserPreferences.DiffPreferencesInfo toProto(DiffPreferencesInfo info) {
UserPreferences.DiffPreferencesInfo.Builder builder =
UserPreferences.DiffPreferencesInfo.newBuilder();
builder = setIfNotNull(builder, builder::setContext, info.context);
@@ -241,7 +255,8 @@
return builder.build();
}
- public static DiffPreferencesInfo fromProto(UserPreferences.DiffPreferencesInfo proto) {
+ @Override
+ public DiffPreferencesInfo fromProto(UserPreferences.DiffPreferencesInfo proto) {
DiffPreferencesInfo res = new DiffPreferencesInfo();
res.context = proto.hasContext() ? proto.getContext() : null;
res.tabSize = proto.hasTabSize() ? proto.getTabSize() : null;
@@ -276,11 +291,18 @@
return res;
}
- private DiffPreferencesInfoConverter() {}
+ @Override
+ public Parser<UserPreferences.DiffPreferencesInfo> getParser() {
+ return UserPreferences.DiffPreferencesInfo.parser();
+ }
}
- public static final class EditPreferencesInfoConverter {
- public static UserPreferences.EditPreferencesInfo toProto(EditPreferencesInfo info) {
+ public enum EditPreferencesInfoConverter
+ implements ProtoConverter<UserPreferences.EditPreferencesInfo, EditPreferencesInfo> {
+ EDIT_PREFERENCES_INFO_CONVERTER;
+
+ @Override
+ public UserPreferences.EditPreferencesInfo toProto(EditPreferencesInfo info) {
UserPreferences.EditPreferencesInfo.Builder builder =
UserPreferences.EditPreferencesInfo.newBuilder();
builder = setIfNotNull(builder, builder::setTabSize, info.tabSize);
@@ -300,7 +322,8 @@
return builder.build();
}
- public static EditPreferencesInfo fromProto(UserPreferences.EditPreferencesInfo proto) {
+ @Override
+ public EditPreferencesInfo fromProto(UserPreferences.EditPreferencesInfo proto) {
EditPreferencesInfo res = new EditPreferencesInfo();
res.tabSize = proto.hasTabSize() ? proto.getTabSize() : null;
res.lineLength = proto.hasLineLength() ? proto.getLineLength() : null;
@@ -320,7 +343,10 @@
return res;
}
- private EditPreferencesInfoConverter() {}
+ @Override
+ public Parser<UserPreferences.EditPreferencesInfo> getParser() {
+ return UserPreferences.EditPreferencesInfo.parser();
+ }
}
private static <ValueT, BuilderT extends Message.Builder> BuilderT setIfNotNull(
diff --git a/javatests/com/google/gerrit/server/config/UserPreferencesConverterTest.java b/javatests/com/google/gerrit/server/config/UserPreferencesConverterTest.java
index 8cfcdbd..621b06b 100644
--- a/javatests/com/google/gerrit/server/config/UserPreferencesConverterTest.java
+++ b/javatests/com/google/gerrit/server/config/UserPreferencesConverterTest.java
@@ -18,6 +18,9 @@
import static com.google.common.collect.ImmutableMap.toImmutableMap;
import static com.google.common.truth.Truth.assertThat;
import static com.google.common.truth.extensions.proto.ProtoTruth.assertThat;
+import static com.google.gerrit.server.config.UserPreferencesConverter.DiffPreferencesInfoConverter.DIFF_PREFERENCES_INFO_CONVERTER;
+import static com.google.gerrit.server.config.UserPreferencesConverter.EditPreferencesInfoConverter.EDIT_PREFERENCES_INFO_CONVERTER;
+import static com.google.gerrit.server.config.UserPreferencesConverter.GeneralPreferencesInfoConverter.GENERAL_PREFERENCES_INFO_CONVERTER;
import static java.util.Arrays.stream;
import com.google.common.collect.ImmutableList;
@@ -35,9 +38,6 @@
import com.google.gerrit.proto.Entities.UserPreferences.GeneralPreferencesInfo.MenuItem;
import com.google.gerrit.proto.Entities.UserPreferences.GeneralPreferencesInfo.Theme;
import com.google.gerrit.proto.Entities.UserPreferences.GeneralPreferencesInfo.TimeFormat;
-import com.google.gerrit.server.config.UserPreferencesConverter.DiffPreferencesInfoConverter;
-import com.google.gerrit.server.config.UserPreferencesConverter.EditPreferencesInfoConverter;
-import com.google.gerrit.server.config.UserPreferencesConverter.GeneralPreferencesInfoConverter;
import com.google.protobuf.Descriptors.Descriptor;
import com.google.protobuf.Descriptors.EnumDescriptor;
import java.util.EnumSet;
@@ -112,8 +112,8 @@
.setDiffPageSidebar("plugin-insight")
.build();
UserPreferences.GeneralPreferencesInfo resProto =
- GeneralPreferencesInfoConverter.toProto(
- GeneralPreferencesInfoConverter.fromProto(originalProto));
+ GENERAL_PREFERENCES_INFO_CONVERTER.toProto(
+ GENERAL_PREFERENCES_INFO_CONVERTER.fromProto(originalProto));
assertThat(resProto).isEqualTo(originalProto);
}
@@ -125,7 +125,8 @@
new com.google.gerrit.extensions.client.MenuItem(
" name1 ", " url1 ", " target1 ", " id1 "),
new com.google.gerrit.extensions.client.MenuItem(null, " url2 ", null, null));
- UserPreferences.GeneralPreferencesInfo resProto = GeneralPreferencesInfoConverter.toProto(info);
+ UserPreferences.GeneralPreferencesInfo resProto =
+ GENERAL_PREFERENCES_INFO_CONVERTER.toProto(info);
assertThat(resProto)
.isEqualTo(
UserPreferences.GeneralPreferencesInfo.newBuilder()
@@ -155,7 +156,7 @@
.build(),
MenuItem.newBuilder().setUrl(" url2 ").build()))
.build();
- GeneralPreferencesInfo info = GeneralPreferencesInfoConverter.fromProto(originalProto);
+ GeneralPreferencesInfo info = GENERAL_PREFERENCES_INFO_CONVERTER.fromProto(originalProto);
assertThat(info.my)
.containsExactly(
new com.google.gerrit.extensions.client.MenuItem("name1", "url1", "target1", "id1"),
@@ -165,14 +166,14 @@
@Test
public void generalPreferencesInfo_emptyJavaToProto() {
GeneralPreferencesInfo info = new GeneralPreferencesInfo();
- UserPreferences.GeneralPreferencesInfo res = GeneralPreferencesInfoConverter.toProto(info);
+ UserPreferences.GeneralPreferencesInfo res = GENERAL_PREFERENCES_INFO_CONVERTER.toProto(info);
assertThat(res).isEqualToDefaultInstance();
}
@Test
public void generalPreferencesInfo_defaultJavaToProto() {
GeneralPreferencesInfo info = GeneralPreferencesInfo.defaults();
- UserPreferences.GeneralPreferencesInfo res = GeneralPreferencesInfoConverter.toProto(info);
+ UserPreferences.GeneralPreferencesInfo res = GENERAL_PREFERENCES_INFO_CONVERTER.toProto(info);
assertThat(res)
.ignoringFieldAbsence()
.isEqualTo(UserPreferences.GeneralPreferencesInfo.getDefaultInstance());
@@ -182,7 +183,7 @@
public void generalPreferencesInfo_emptyProtoToJava() {
UserPreferences.GeneralPreferencesInfo proto =
UserPreferences.GeneralPreferencesInfo.getDefaultInstance();
- GeneralPreferencesInfo res = GeneralPreferencesInfoConverter.fromProto(proto);
+ GeneralPreferencesInfo res = GENERAL_PREFERENCES_INFO_CONVERTER.fromProto(proto);
assertThat(res).isEqualTo(new GeneralPreferencesInfo());
}
@@ -238,21 +239,22 @@
.setSkipUncommented(false)
.build();
UserPreferences.DiffPreferencesInfo resProto =
- DiffPreferencesInfoConverter.toProto(DiffPreferencesInfoConverter.fromProto(originalProto));
+ DIFF_PREFERENCES_INFO_CONVERTER.toProto(
+ DIFF_PREFERENCES_INFO_CONVERTER.fromProto(originalProto));
assertThat(resProto).isEqualTo(originalProto);
}
@Test
public void diffPreferencesInfo_emptyJavaToProto() {
DiffPreferencesInfo info = new DiffPreferencesInfo();
- UserPreferences.DiffPreferencesInfo res = DiffPreferencesInfoConverter.toProto(info);
+ UserPreferences.DiffPreferencesInfo res = DIFF_PREFERENCES_INFO_CONVERTER.toProto(info);
assertThat(res).isEqualToDefaultInstance();
}
@Test
public void diffPreferencesInfo_defaultJavaToProto() {
DiffPreferencesInfo info = DiffPreferencesInfo.defaults();
- UserPreferences.DiffPreferencesInfo res = DiffPreferencesInfoConverter.toProto(info);
+ UserPreferences.DiffPreferencesInfo res = DIFF_PREFERENCES_INFO_CONVERTER.toProto(info);
assertThat(res)
.ignoringFieldAbsence()
.isEqualTo(UserPreferences.DiffPreferencesInfo.getDefaultInstance());
@@ -262,7 +264,7 @@
public void diffPreferencesInfo_emptyProtoToJava() {
UserPreferences.DiffPreferencesInfo proto =
UserPreferences.DiffPreferencesInfo.getDefaultInstance();
- DiffPreferencesInfo res = DiffPreferencesInfoConverter.fromProto(proto);
+ DiffPreferencesInfo res = DIFF_PREFERENCES_INFO_CONVERTER.fromProto(proto);
assertThat(res).isEqualTo(new DiffPreferencesInfo());
}
@@ -308,21 +310,22 @@
.setShowBase(false)
.build();
UserPreferences.EditPreferencesInfo resProto =
- EditPreferencesInfoConverter.toProto(EditPreferencesInfoConverter.fromProto(originalProto));
+ EDIT_PREFERENCES_INFO_CONVERTER.toProto(
+ EDIT_PREFERENCES_INFO_CONVERTER.fromProto(originalProto));
assertThat(resProto).isEqualTo(originalProto);
}
@Test
public void editPreferencesInfo_emptyJavaToProto() {
EditPreferencesInfo info = new EditPreferencesInfo();
- UserPreferences.EditPreferencesInfo res = EditPreferencesInfoConverter.toProto(info);
+ UserPreferences.EditPreferencesInfo res = EDIT_PREFERENCES_INFO_CONVERTER.toProto(info);
assertThat(res).isEqualToDefaultInstance();
}
@Test
public void editPreferencesInfo_defaultJavaToProto() {
EditPreferencesInfo info = EditPreferencesInfo.defaults();
- UserPreferences.EditPreferencesInfo res = EditPreferencesInfoConverter.toProto(info);
+ UserPreferences.EditPreferencesInfo res = EDIT_PREFERENCES_INFO_CONVERTER.toProto(info);
assertThat(res)
.ignoringFieldAbsence()
.isEqualTo(UserPreferences.EditPreferencesInfo.getDefaultInstance());
@@ -332,7 +335,7 @@
public void editPreferencesInfo_emptyProtoToJava() {
UserPreferences.EditPreferencesInfo proto =
UserPreferences.EditPreferencesInfo.getDefaultInstance();
- EditPreferencesInfo res = EditPreferencesInfoConverter.fromProto(proto);
+ EditPreferencesInfo res = EDIT_PREFERENCES_INFO_CONVERTER.fromProto(proto);
assertThat(res).isEqualTo(new EditPreferencesInfo());
}