Convert ChangeMessage.Key to AutoValue

See I6982fb24 for context.

Change-Id: I70ace69c03bd380ba37230fd2c4c3c81ab01d4b1
This commit is contained in:
Dave Borowitz
2019-04-19 07:40:42 -07:00
parent ac3b3d63d1
commit 7eaa2f9ff5
8 changed files with 29 additions and 53 deletions

View File

@@ -14,43 +14,22 @@
package com.google.gerrit.reviewdb.client;
import com.google.auto.value.AutoValue;
import com.google.gerrit.common.Nullable;
import com.google.gwtorm.client.StringKey;
import java.sql.Timestamp;
import java.util.Objects;
/** A message attached to a {@link Change}. */
public final class ChangeMessage {
public static class Key extends StringKey<Change.Id> {
private static final long serialVersionUID = 1L;
public static Key key(Change.Id changeId, String uuid) {
return new AutoValue_ChangeMessage_Key(changeId, uuid);
}
protected Change.Id changeId;
@AutoValue
public abstract static class Key {
public abstract Change.Id changeId();
protected String uuid;
protected Key() {
changeId = new Change.Id();
}
public Key(Change.Id change, String uuid) {
this.changeId = change;
this.uuid = uuid;
}
@Override
public Change.Id getParentKey() {
return changeId;
}
@Override
public String get() {
return uuid;
}
@Override
public void set(String newValue) {
uuid = newValue;
}
public abstract String uuid();
}
protected Key key;

View File

@@ -29,14 +29,14 @@ public enum ChangeMessageKeyProtoConverter
@Override
public Entities.ChangeMessage_Key toProto(ChangeMessage.Key messageKey) {
return Entities.ChangeMessage_Key.newBuilder()
.setChangeId(changeIdConverter.toProto(messageKey.getParentKey()))
.setUuid(messageKey.get())
.setChangeId(changeIdConverter.toProto(messageKey.changeId()))
.setUuid(messageKey.uuid())
.build();
}
@Override
public ChangeMessage.Key fromProto(Entities.ChangeMessage_Key proto) {
return new ChangeMessage.Key(changeIdConverter.fromProto(proto.getChangeId()), proto.getUuid());
return ChangeMessage.key(changeIdConverter.fromProto(proto.getChangeId()), proto.getUuid());
}
@Override

View File

@@ -72,7 +72,7 @@ public class ChangeMessagesUtil {
Account.Id accountId = user.isInternalUser() ? null : user.getAccountId();
ChangeMessage m =
new ChangeMessage(
new ChangeMessage.Key(psId.getParentKey(), ChangeUtil.messageUuid()),
ChangeMessage.key(psId.getParentKey(), ChangeUtil.messageUuid()),
accountId,
when,
psId);
@@ -127,7 +127,7 @@ public class ChangeMessagesUtil {
ChangeMessage message, AccountLoader accountLoader) {
PatchSet.Id patchNum = message.getPatchSetId();
ChangeMessageInfo cmi = new ChangeMessageInfo();
cmi.id = message.getKey().get();
cmi.id = message.getKey().uuid();
cmi.author = accountLoader.get(message.getAuthor());
cmi.date = message.getWrittenOn();
cmi.message = message.getMessage();

View File

@@ -55,7 +55,7 @@ public class DeleteReviewerByEmailOp implements BatchUpdateOp {
String msg = "Removed reviewer " + reviewer;
changeMessage =
new ChangeMessage(
new ChangeMessage.Key(change.getId(), ChangeUtil.messageUuid()),
ChangeMessage.key(change.getId(), ChangeUtil.messageUuid()),
ctx.getAccountId(),
ctx.getWhen(),
psId);

View File

@@ -690,7 +690,7 @@ class ChangeNotesParser {
ChangeMessage changeMessage =
new ChangeMessage(
new ChangeMessage.Key(psId.getParentKey(), commit.name()), accountId, ts, psId);
ChangeMessage.key(psId.getParentKey(), commit.name()), accountId, ts, psId);
changeMessage.setMessage(changeMsgString.get());
changeMessage.setTag(tag);
changeMessage.setRealAuthor(realAccountId);

View File

@@ -33,7 +33,7 @@ public class ChangeMessageKeyProtoConverterTest {
@Test
public void allValuesConvertedToProto() {
ChangeMessage.Key messageKey = new ChangeMessage.Key(new Change.Id(704), "aabbcc");
ChangeMessage.Key messageKey = ChangeMessage.key(new Change.Id(704), "aabbcc");
Entities.ChangeMessage_Key proto = messageKeyProtoConverter.toProto(messageKey);
@@ -47,7 +47,7 @@ public class ChangeMessageKeyProtoConverterTest {
@Test
public void allValuesConvertedToProtoAndBackAgain() {
ChangeMessage.Key messageKey = new ChangeMessage.Key(new Change.Id(704), "aabbcc");
ChangeMessage.Key messageKey = ChangeMessage.key(new Change.Id(704), "aabbcc");
ChangeMessage.Key convertedMessageKey =
messageKeyProtoConverter.fromProto(messageKeyProtoConverter.toProto(messageKey));
@@ -72,9 +72,9 @@ public class ChangeMessageKeyProtoConverterTest {
/** See {@link SerializedClassSubject} for background and what to do if this test fails. */
@Test
public void fieldsExistAsExpected() {
public void methodsExistAsExpected() {
assertThatSerializedClass(ChangeMessage.Key.class)
.hasFields(
.hasAutoValueMethods(
ImmutableMap.<String, Type>builder()
.put("changeId", Change.Id.class)
.put("uuid", String.class)

View File

@@ -38,7 +38,7 @@ public class ChangeMessageProtoConverterTest {
public void allValuesConvertedToProto() {
ChangeMessage changeMessage =
new ChangeMessage(
new ChangeMessage.Key(new Change.Id(543), "change-message-21"),
ChangeMessage.key(new Change.Id(543), "change-message-21"),
Account.id(63),
new Timestamp(9876543),
new PatchSet.Id(new Change.Id(34), 13));
@@ -71,7 +71,7 @@ public class ChangeMessageProtoConverterTest {
public void mainValuesConvertedToProto() {
ChangeMessage changeMessage =
new ChangeMessage(
new ChangeMessage.Key(new Change.Id(543), "change-message-21"),
ChangeMessage.key(new Change.Id(543), "change-message-21"),
Account.id(63),
new Timestamp(9876543),
new PatchSet.Id(new Change.Id(34), 13));
@@ -99,10 +99,7 @@ public class ChangeMessageProtoConverterTest {
public void realAuthorIsNotAutomaticallySetToAuthorWhenConvertedToProto() {
ChangeMessage changeMessage =
new ChangeMessage(
new ChangeMessage.Key(new Change.Id(543), "change-message-21"),
Account.id(63),
null,
null);
ChangeMessage.key(new Change.Id(543), "change-message-21"), Account.id(63), null, null);
Entities.ChangeMessage proto = changeMessageProtoConverter.toProto(changeMessage);
@@ -123,7 +120,7 @@ public class ChangeMessageProtoConverterTest {
// protobuf definition. -> assume as optional and hence test null
ChangeMessage changeMessage =
new ChangeMessage(
new ChangeMessage.Key(new Change.Id(543), "change-message-21"), null, null, null);
ChangeMessage.key(new Change.Id(543), "change-message-21"), null, null, null);
Entities.ChangeMessage proto = changeMessageProtoConverter.toProto(changeMessage);
@@ -141,7 +138,7 @@ public class ChangeMessageProtoConverterTest {
public void allValuesConvertedToProtoAndBackAgain() {
ChangeMessage changeMessage =
new ChangeMessage(
new ChangeMessage.Key(new Change.Id(543), "change-message-21"),
ChangeMessage.key(new Change.Id(543), "change-message-21"),
Account.id(63),
new Timestamp(9876543),
new PatchSet.Id(new Change.Id(34), 13));
@@ -158,7 +155,7 @@ public class ChangeMessageProtoConverterTest {
public void mainValuesConvertedToProtoAndBackAgain() {
ChangeMessage changeMessage =
new ChangeMessage(
new ChangeMessage.Key(new Change.Id(543), "change-message-21"),
ChangeMessage.key(new Change.Id(543), "change-message-21"),
Account.id(63),
new Timestamp(9876543),
new PatchSet.Id(new Change.Id(34), 13));
@@ -172,7 +169,7 @@ public class ChangeMessageProtoConverterTest {
public void mandatoryValuesConvertedToProtoAndBackAgain() {
ChangeMessage changeMessage =
new ChangeMessage(
new ChangeMessage.Key(new Change.Id(543), "change-message-21"), null, null, null);
ChangeMessage.key(new Change.Id(543), "change-message-21"), null, null, null);
ChangeMessage convertedChangeMessage =
changeMessageProtoConverter.fromProto(changeMessageProtoConverter.toProto(changeMessage));

View File

@@ -625,7 +625,7 @@ public class ChangeNotesStateTest extends GerritBaseTests {
public void serializeChangeMessages() throws Exception {
ChangeMessage m1 =
new ChangeMessage(
new ChangeMessage.Key(ID, "uuid1"),
ChangeMessage.key(ID, "uuid1"),
Account.id(1000),
new Timestamp(1212L),
new PatchSet.Id(ID, 1));
@@ -634,7 +634,7 @@ public class ChangeNotesStateTest extends GerritBaseTests {
ChangeMessage m2 =
new ChangeMessage(
new ChangeMessage.Key(ID, "uuid2"),
ChangeMessage.key(ID, "uuid2"),
Account.id(2000),
new Timestamp(3434L),
new PatchSet.Id(ID, 2));
@@ -864,7 +864,7 @@ public class ChangeNotesStateTest extends GerritBaseTests {
@Test
public void changeMessageFields() throws Exception {
assertThatSerializedClass(ChangeMessage.Key.class)
.hasFields(ImmutableMap.of("changeId", Change.Id.class, "uuid", String.class));
.hasAutoValueMethods(ImmutableMap.of("changeId", Change.Id.class, "uuid", String.class));
assertThatSerializedClass(ChangeMessage.class)
.hasFields(
ImmutableMap.<String, Type>builder()