BatchUpdate: Add more helper methods

Add new helper methods:

- getAccount
- getAccountId
- getIdentifiedUser

which will reduce the amount of code at call sites, for example:

  ctx.getAccount();

instead of:

  ctx.getUser().asIdentifiedUser().getAccount();

Change-Id: I946002e1cf70a77bc1fe3879edf5717ecac77fb7
This commit is contained in:
David Pursehouse
2016-07-13 13:59:47 +09:00
parent ef55d3a65c
commit ec7d18eedc
21 changed files with 64 additions and 47 deletions

View File

@@ -407,7 +407,7 @@ public class ChangeRebuilderIT extends AbstractDaemonTest {
PatchSet.Id psId = ctx.getChange().currentPatchSetId();
ChangeMessage cm = new ChangeMessage(
new ChangeMessage.Key(id, ChangeUtil.messageUUID(ctx.getDb())),
ctx.getUser().getAccountId(), ctx.getWhen(), psId);
ctx.getAccountId(), ctx.getWhen(), psId);
cm.setMessage(msg);
ctx.getDb().changeMessages().insert(Collections.singleton(cm));
ctx.getUpdate(psId).setChangeMessage(msg);

View File

@@ -170,7 +170,7 @@ public class ChangeInserter extends BatchUpdate.InsertChangeOp {
change = new Change(
getChangeKey(commit),
changeId,
ctx.getUser().getAccountId(),
ctx.getAccountId(),
new Branch.NameKey(ctx.getProject(), refName),
ctx.getWhen());
change.setStatus(MoreObjects.firstNonNull(status, Change.Status.NEW));
@@ -355,7 +355,7 @@ public class ChangeInserter extends BatchUpdate.InsertChangeOp {
if (message != null) {
changeMessage =
new ChangeMessage(new ChangeMessage.Key(change.getId(),
ChangeUtil.messageUUID(db)), ctx.getUser().getAccountId(),
ChangeUtil.messageUUID(db)), ctx.getAccountId(),
patchSet.getCreatedOn(), patchSet.getId());
changeMessage.setMessage(message);
cmUtil.addChangeMessage(db, update, changeMessage);
@@ -401,7 +401,7 @@ public class ChangeInserter extends BatchUpdate.InsertChangeOp {
* show a transition from an oldValue of 0 to the new value.
*/
if (fireRevisionCreated) {
revisionCreated.fire(change, patchSet, ctx.getUser().getAccountId(),
revisionCreated.fire(change, patchSet, ctx.getAccountId(),
ctx.getWhen());
if (approvals != null && !approvals.isEmpty()) {
ChangeControl changeControl = changeControlFactory.controlFor(
@@ -420,7 +420,7 @@ public class ChangeInserter extends BatchUpdate.InsertChangeOp {
}
}
commentAdded.fire(change, patchSet,
ctx.getUser().asIdentifiedUser().getAccount(), null,
ctx.getAccount(), null,
allApprovals, oldApprovals, ctx.getWhen());
}
}
@@ -447,7 +447,7 @@ public class ChangeInserter extends BatchUpdate.InsertChangeOp {
refControl.getProjectControl().getProject(),
change.getDest().get(),
commit,
ctx.getUser().asIdentifiedUser());
ctx.getIdentifiedUser());
switch (validatePolicy) {
case RECEIVE_COMMITS:

View File

@@ -274,7 +274,7 @@ public class CherryPickChange {
ChangeMessage changeMessage = new ChangeMessage(
new ChangeMessage.Key(
ctx.getChange().getId(), ChangeUtil.messageUUID(ctx.getDb())),
ctx.getUser().getAccountId(), ctx.getWhen(), psId);
ctx.getAccountId(), ctx.getWhen(), psId);
StringBuilder sb = new StringBuilder("Patch Set ")
.append(psId.get())
.append(": Cherry Picked")

View File

@@ -117,7 +117,7 @@ public class CreateDraftComment implements RestModifyView<RevisionResource, Draf
new PatchLineComment.Key(
new Patch.Key(ps.getId(), in.path),
ChangeUtil.messageUUID(ctx.getDb())),
line, ctx.getUser().getAccountId(), Url.decode(in.inReplyTo),
line, ctx.getAccountId(), Url.decode(in.inReplyTo),
ctx.getWhen());
comment.setSide(in.side == Side.PARENT ? (short) 0 : (short) 1);
comment.setMessage(in.message.trim());

View File

@@ -183,7 +183,7 @@ public class DeleteReviewer implements RestModifyView<ReviewerResource, Input> {
changeMessage = new ChangeMessage(
new ChangeMessage.Key(currChange.getId(),
ChangeUtil.messageUUID(ctx.getDb())),
ctx.getUser().getAccountId(), ctx.getWhen(), currPs.getId());
ctx.getAccountId(), ctx.getWhen(), currPs.getId());
changeMessage.setMessage(msg.toString());
cmUtil.addChangeMessage(ctx.getDb(), update, changeMessage);
}
@@ -199,7 +199,7 @@ public class DeleteReviewer implements RestModifyView<ReviewerResource, Input> {
emailReviewers(ctx.getProject(), currChange, del, changeMessage);
reviewerDeleted.fire(currChange, currPs, reviewer,
ctx.getUser().asIdentifiedUser().getAccount(),
ctx.getAccount(),
changeMessage.getMessage(),
newApprovals, oldApprovals,
ctx.getWhen());

View File

@@ -185,7 +185,7 @@ public class DeleteVote
changeMessage =
new ChangeMessage(new ChangeMessage.Key(change.getId(),
ChangeUtil.messageUUID(ctx.getDb())),
ctx.getUser().asIdentifiedUser().getAccountId(),
ctx.getAccountId(),
ctx.getWhen(),
change.currentPatchSetId());
changeMessage.setMessage(msg.toString());
@@ -201,7 +201,7 @@ public class DeleteVote
return;
}
IdentifiedUser user = ctx.getUser().asIdentifiedUser();
IdentifiedUser user = ctx.getIdentifiedUser();
if (input.notify.compareTo(NotifyHandling.NONE) > 0) {
try {
ReplyToChangeSender cm = deleteVoteSenderFactory.create(

View File

@@ -235,7 +235,7 @@ public class PatchSetInserter extends BatchUpdate.Op {
if (message != null) {
changeMessage = new ChangeMessage(
new ChangeMessage.Key(ctl.getId(), ChangeUtil.messageUUID(db)),
ctx.getUser().getAccountId(), ctx.getWhen(), patchSet.getId());
ctx.getAccountId(), ctx.getWhen(), patchSet.getId());
changeMessage.setMessage(message);
}
@@ -259,7 +259,7 @@ public class PatchSetInserter extends BatchUpdate.Op {
try {
ReplacePatchSetSender cm = replacePatchSetFactory.create(
ctx.getProject(), change.getId());
cm.setFrom(ctx.getUser().getAccountId());
cm.setFrom(ctx.getAccountId());
cm.setPatchSet(patchSet, patchSetInfo);
cm.setChangeMessage(changeMessage.getMessage(), ctx.getWhen());
cm.addReviewers(oldReviewers.byState(REVIEWER));
@@ -272,7 +272,7 @@ public class PatchSetInserter extends BatchUpdate.Op {
}
if (fireRevisionCreated) {
revisionCreated.fire(change, patchSet, ctx.getUser().getAccountId(),
revisionCreated.fire(change, patchSet, ctx.getAccountId(),
ctx.getWhen());
}
}
@@ -296,7 +296,7 @@ public class PatchSetInserter extends BatchUpdate.Op {
refName.substring(0, refName.lastIndexOf('/') + 1) + "new"),
origCtl.getProjectControl().getProject(),
origCtl.getRefControl().getRefName(),
commit, ctx.getUser().asIdentifiedUser());
commit, ctx.getIdentifiedUser());
try {
switch (validatePolicy) {

View File

@@ -359,7 +359,7 @@ public class PostReview implements RestModifyView<RevisionResource, ReviewInput>
@Override
public boolean updateChange(ChangeContext ctx)
throws OrmException, ResourceConflictException {
user = ctx.getUser().asIdentifiedUser();
user = ctx.getIdentifiedUser();
notes = ctx.getNotes();
ps = psUtil.get(ctx.getDb(), ctx.getNotes(), psId);
boolean dirty = false;

View File

@@ -290,7 +290,7 @@ public class PostReviewers implements RestModifyView<ChangeResource, AddReviewer
for (PatchSetApproval psa : added) {
Account account = accountCache.get(psa.getAccountId()).getAccount();
reviewerAdded.fire(rsrc.getChange(), patchSet, account,
ctx.getUser().asIdentifiedUser().getAccount(),
ctx.getAccount(),
ctx.getWhen());
}
}

View File

@@ -215,7 +215,7 @@ public class PublishDraftPatchSet implements RestModifyView<RevisionResource, In
List<FooterLine> footerLines = commit.getFooterLines();
recipients = getRecipientsFromFooters(
accountResolver, patchSet.isDraft(), footerLines);
recipients.remove(ctx.getUser().getAccountId());
recipients.remove(ctx.getAccountId());
approvalsUtil.addReviewers(ctx.getDb(), ctx.getUpdate(psId), labelTypes,
change, patchSet, patchSetInfo, recipients.getReviewers(),
oldReviewers);
@@ -223,7 +223,7 @@ public class PublishDraftPatchSet implements RestModifyView<RevisionResource, In
@Override
public void postUpdate(Context ctx) throws OrmException {
draftPublished.fire(change, patchSet, ctx.getUser().getAccountId(),
draftPublished.fire(change, patchSet, ctx.getAccountId(),
ctx.getWhen());
if (patchSet.isDraft() && change.getStatus() == Change.Status.DRAFT) {
// Skip emails if the patch set is still a draft.
@@ -243,7 +243,7 @@ public class PublishDraftPatchSet implements RestModifyView<RevisionResource, In
private void sendCreateChange(Context ctx) throws EmailException {
CreateChangeSender cm =
createChangeSenderFactory.create(ctx.getProject(), change.getId());
cm.setFrom(ctx.getUser().getAccountId());
cm.setFrom(ctx.getAccountId());
cm.setPatchSet(patchSet, patchSetInfo);
cm.addReviewers(recipients.getReviewers());
cm.addExtraCC(recipients.getCcOnly());
@@ -252,7 +252,7 @@ public class PublishDraftPatchSet implements RestModifyView<RevisionResource, In
private void sendReplacePatchSet(Context ctx)
throws EmailException, OrmException {
Account.Id accountId = ctx.getUser().getAccountId();
Account.Id accountId = ctx.getAccountId();
ChangeMessage msg =
new ChangeMessage(new ChangeMessage.Key(change.getId(),
ChangeUtil.messageUUID(ctx.getDb())), accountId,

View File

@@ -141,7 +141,7 @@ public class PutDraftComment implements RestModifyView<DraftCommentResource, Dra
new Patch.Key(psId, in.path),
comment.getKey().get()),
comment.getLine(),
ctx.getUser().getAccountId(),
ctx.getAccountId(),
comment.getParentUuid(), ctx.getWhen());
comment.setTag(origComment.getTag());
setCommentRevId(comment, patchListCache, ctx.getChange(), ps);

View File

@@ -119,7 +119,7 @@ public class PutTopic implements RestModifyView<ChangeResource, Input>,
new ChangeMessage.Key(
change.getId(),
ChangeUtil.messageUUID(ctx.getDb())),
ctx.getUser().getAccountId(), ctx.getWhen(),
ctx.getAccountId(), ctx.getWhen(),
change.currentPatchSetId());
cmsg.setMessage(summary);
cmUtil.addChangeMessage(ctx.getDb(), update, cmsg);
@@ -130,7 +130,7 @@ public class PutTopic implements RestModifyView<ChangeResource, Input>,
public void postUpdate(Context ctx) {
if (change != null) {
topicEdited.fire(change,
ctx.getUser().asIdentifiedUser().getAccount(),
ctx.getAccount(),
oldTopicName,
ctx.getWhen());
}

View File

@@ -241,7 +241,7 @@ public class RebaseChangeOp extends BatchUpdate.Op {
if (committerIdent != null) {
cb.setCommitter(committerIdent);
} else {
cb.setCommitter(ctx.getUser().asIdentifiedUser()
cb.setCommitter(ctx.getIdentifiedUser()
.newCommitterIdent(ctx.getWhen(), ctx.getTimeZone()));
}
ObjectId objectId = ctx.getInserter().insert(cb);

View File

@@ -136,7 +136,7 @@ public class Restore implements RestModifyView<ChangeResource, RestoreInput>,
new ChangeMessage.Key(
change.getId(),
ChangeUtil.messageUUID(ctx.getDb())),
ctx.getUser().getAccountId(),
ctx.getAccountId(),
ctx.getWhen(),
change.currentPatchSetId());
message.setMessage(msg.toString());
@@ -148,14 +148,14 @@ public class Restore implements RestModifyView<ChangeResource, RestoreInput>,
try {
ReplyToChangeSender cm =
restoredSenderFactory.create(ctx.getProject(), change.getId());
cm.setFrom(ctx.getUser().getAccountId());
cm.setFrom(ctx.getAccountId());
cm.setChangeMessage(message.getMessage(), ctx.getWhen());
cm.send();
} catch (Exception e) {
log.error("Cannot email update for change " + change.getId(), e);
}
changeRestored.fire(change, patchSet,
ctx.getUser().asIdentifiedUser().getAccount(),
ctx.getAccount(),
Strings.emptyToNull(input.message),
ctx.getWhen());
}

View File

@@ -245,7 +245,7 @@ public class Revert implements RestModifyView<ChangeResource, RevertInput>,
try {
RevertedSender cm =
revertedSenderFactory.create(ctx.getProject(), changeId);
cm.setFrom(ctx.getUser().getAccountId());
cm.setFrom(ctx.getAccountId());
cm.setChangeMessage(ins.getChangeMessage().getMessage(), ctx.getWhen());
cm.send();
} catch (Exception err) {
@@ -268,7 +268,7 @@ public class Revert implements RestModifyView<ChangeResource, RevertInput>,
ChangeMessage changeMessage = new ChangeMessage(
new ChangeMessage.Key(change.getId(),
ChangeUtil.messageUUID(db.get())),
ctx.getUser().getAccountId(), ctx.getWhen(), patchSetId);
ctx.getAccountId(), ctx.getWhen(), patchSetId);
StringBuilder msgBuf = new StringBuilder();
msgBuf.append("Created a revert of this change as ")
.append("I").append(computedChangeId.name());

View File

@@ -138,7 +138,7 @@ public class SetHashtagsOp extends BatchUpdate.Op {
new ChangeMessage.Key(
change.getId(),
ChangeUtil.messageUUID(ctx.getDb())),
ctx.getUser().getAccountId(), ctx.getWhen(),
ctx.getAccountId(), ctx.getWhen(),
change.currentPatchSetId());
cmsg.setMessage(msg.toString());
cmUtil.addChangeMessage(ctx.getDb(), update, cmsg);
@@ -166,7 +166,7 @@ public class SetHashtagsOp extends BatchUpdate.Op {
@Override
public void postUpdate(Context ctx) throws OrmException {
if (updated() && fireEvent) {
hashtagsEdited.fire(change, ctx.getUser().getAccountId(), updatedHashtags,
hashtagsEdited.fire(change, ctx.getAccountId(), updatedHashtags,
toAdd, toRemove, ctx.getWhen());
}
}

View File

@@ -30,6 +30,7 @@ import com.google.common.util.concurrent.MoreExecutors;
import com.google.gerrit.extensions.restapi.ResourceConflictException;
import com.google.gerrit.extensions.restapi.ResourceNotFoundException;
import com.google.gerrit.extensions.restapi.RestApiException;
import com.google.gerrit.reviewdb.client.Account;
import com.google.gerrit.reviewdb.client.Change;
import com.google.gerrit.reviewdb.client.PatchSet;
import com.google.gerrit.reviewdb.client.Project;
@@ -38,6 +39,7 @@ import com.google.gerrit.reviewdb.server.ReviewDbUtil;
import com.google.gerrit.reviewdb.server.ReviewDbWrapper;
import com.google.gerrit.server.CurrentUser;
import com.google.gerrit.server.GerritPersonIdent;
import com.google.gerrit.server.IdentifiedUser;
import com.google.gerrit.server.config.AllUsersName;
import com.google.gerrit.server.extensions.events.GitReferenceUpdated;
import com.google.gerrit.server.index.change.ChangeIndexer;
@@ -160,6 +162,21 @@ public class BatchUpdate implements AutoCloseable {
return user;
}
public IdentifiedUser getIdentifiedUser() {
checkNotNull(user);
return user.asIdentifiedUser();
}
public Account getAccount() {
checkNotNull(user);
return user.asIdentifiedUser().getAccount();
}
public Account.Id getAccountId() {
checkNotNull(user);
return user.getAccountId();
}
public Order getOrder() {
return order;
}

View File

@@ -152,14 +152,14 @@ public class MergedByPushOp extends BatchUpdate.Op {
ChangeMessage msg = new ChangeMessage(
new ChangeMessage.Key(change.getId(),
ChangeUtil.messageUUID(ctx.getDb())),
ctx.getUser().getAccountId(), ctx.getWhen(), psId);
ctx.getAccountId(), ctx.getWhen(), psId);
msg.setMessage(msgBuf.toString());
cmUtil.addChangeMessage(ctx.getDb(), update, msg);
PatchSetApproval submitter = new PatchSetApproval(
new PatchSetApproval.Key(
change.currentPatchSetId(),
ctx.getUser().getAccountId(),
ctx.getAccountId(),
LabelId.legacySubmit()),
(short) 1, ctx.getWhen());
update.putApproval(submitter.getLabel(), submitter.getValue());
@@ -180,7 +180,7 @@ public class MergedByPushOp extends BatchUpdate.Op {
try {
MergedSender cm =
mergedSenderFactory.create(ctx.getProject(), psId.getParentKey());
cm.setFrom(ctx.getUser().getAccountId());
cm.setFrom(ctx.getAccountId());
cm.setPatchSet(patchSet, info);
cm.send();
} catch (Exception e) {
@@ -195,7 +195,7 @@ public class MergedByPushOp extends BatchUpdate.Op {
}));
changeMerged.fire(change, patchSet,
ctx.getUser().asIdentifiedUser().getAccount(),
ctx.getAccount(),
patchSet.getRevision().get(),
ctx.getWhen());
}

View File

@@ -247,7 +247,7 @@ public class ReplaceOp extends BatchUpdate.Op {
recipients.add(getRecipientsFromFooters(
accountResolver, draft, commit.getFooterLines()));
recipients.remove(ctx.getUser().getAccountId());
recipients.remove(ctx.getAccountId());
ChangeData cd = changeDataFactory.create(ctx.getDb(), ctx.getControl());
MailRecipients oldRecipients =
getRecipientsFromReviewers(cd.reviewers());
@@ -273,7 +273,7 @@ public class ReplaceOp extends BatchUpdate.Op {
msg = new ChangeMessage(
new ChangeMessage.Key(change.getId(),
ChangeUtil.messageUUID(ctx.getDb())),
ctx.getUser().getAccountId(), ctx.getWhen(), patchSetId);
ctx.getAccountId(), ctx.getWhen(), patchSetId);
msg.setMessage(message.toString());
cmUtil.addChangeMessage(ctx.getDb(), update, msg);
@@ -308,7 +308,7 @@ public class ReplaceOp extends BatchUpdate.Op {
if (!approvals.isEmpty()) {
for (PatchSetApproval a : approvalsUtil.byPatchSetUser(ctx.getDb(),
ctx.getControl(), priorPatchSetId,
ctx.getUser().getAccountId())) {
ctx.getAccountId())) {
if (a.isLegacySubmit()) {
continue;
}
@@ -360,7 +360,7 @@ public class ReplaceOp extends BatchUpdate.Op {
// special because its ref is actually updated by ReceiveCommits, so from
// BatchUpdate's perspective there is no ref update. Thus we have to fire it
// manually.
Account account = ctx.getUser().asIdentifiedUser().getAccount();
final Account account = ctx.getAccount();
gitRefUpdated.fire(ctx.getProject(), newPatchSet.getRefName(),
ObjectId.zeroId(), commit, account);
@@ -371,7 +371,7 @@ public class ReplaceOp extends BatchUpdate.Op {
try {
ReplacePatchSetSender cm = replacePatchSetFactory.create(
projectControl.getProject().getNameKey(), change.getId());
cm.setFrom(ctx.getUser().getAccountId());
cm.setFrom(account.getId());
cm.setPatchSet(newPatchSet, info);
cm.setChangeMessage(msg.getMessage(), ctx.getWhen());
if (magicBranch != null && magicBranch.notify != null) {
@@ -398,7 +398,7 @@ public class ReplaceOp extends BatchUpdate.Op {
}
}
revisionCreated.fire(change, newPatchSet, ctx.getUser().getAccountId(),
revisionCreated.fire(change, newPatchSet, ctx.getAccountId(),
ctx.getWhen());
try {
fireCommentAddedEvent(ctx);
@@ -438,7 +438,7 @@ public class ReplaceOp extends BatchUpdate.Op {
}
commentAdded.fire(change, newPatchSet,
ctx.getUser().asIdentifiedUser().getAccount(), null,
ctx.getAccount(), null,
allApprovals, oldApprovals, ctx.getWhen());
}

View File

@@ -30,7 +30,7 @@ class MergeOneOp extends SubmitStrategyOp {
@Override
public void updateRepoImpl(RepoContext ctx)
throws IntegrationException, IOException {
PersonIdent caller = ctx.getUser().asIdentifiedUser().newCommitterIdent(
PersonIdent caller = ctx.getIdentifiedUser().newCommitterIdent(
ctx.getWhen(), ctx.getTimeZone());
if (args.mergeTip.getCurrentTip() == null) {
throw new IllegalStateException("cannot merge commit " + toMerge.name()

View File

@@ -336,7 +336,7 @@ abstract class SubmitStrategyOp extends BatchUpdate.Op {
submitter = new PatchSetApproval(
new PatchSetApproval.Key(
psId,
ctx.getUser().getAccountId(),
ctx.getAccountId(),
LabelId.legacySubmit()),
(short) 1, ctx.getWhen());
byKey.put(submitter.getKey(), submitter);
@@ -471,7 +471,7 @@ abstract class SubmitStrategyOp extends BatchUpdate.Op {
}
ChangeMessage m = new ChangeMessage(
new ChangeMessage.Key(psId.getParentKey(), uuid),
ctx.getUser().getAccountId(), ctx.getWhen(), psId);
ctx.getAccountId(), ctx.getWhen(), psId);
m.setMessage(body);
return m;
}