Merge "Instead of deleting patch-set-approval set vote to zero"

This commit is contained in:
Edwin Kempin
2016-03-11 14:44:05 +00:00
committed by Gerrit Code Review

View File

@@ -361,8 +361,8 @@ abstract class SubmitStrategyOp extends BatchUpdate.Op {
PatchSet.Id psId = update.getPatchSetId();
ctx.getDb().patchSetApprovals().upsert(
convertPatchSet(normalized.getNormalized(), psId));
ctx.getDb().patchSetApprovals().delete(
convertPatchSet(normalized.deleted(), psId));
ctx.getDb().patchSetApprovals().update(
zero(convertPatchSet(normalized.deleted(), psId)));
for (PatchSetApproval psa : normalized.updated()) {
update.putApprovalFor(psa.getAccountId(), psa.getLabel(), psa.getValue());
}
@@ -400,6 +400,19 @@ abstract class SubmitStrategyOp extends BatchUpdate.Op {
return Iterables.transform(approvals, convertPatchSet(psId));
}
private static Iterable<PatchSetApproval> zero(
Iterable<PatchSetApproval> approvals) {
return Iterables.transform(approvals,
new Function<PatchSetApproval, PatchSetApproval>() {
@Override
public PatchSetApproval apply(PatchSetApproval in) {
PatchSetApproval copy = new PatchSetApproval(in.getPatchSetId(), in);
copy.setValue((short) 0);
return copy;
}
});
}
private String getByAccountName() {
checkNotNull(submitter,
"getByAccountName called before submitter populated");