public class ApprovalsUtil
extends java.lang.Object
Approvals are overloaded, they represent both approvals and reviewers which should be CCed on a change. To ensure that reviewers are not lost there must always be an approval on each patchset for each reviewer, even if the reviewer hasn't actually given a score to the change. To mark the "no score" case, a dummy approval, which may live in any of the available categories, with a score of 0 is used.
The methods in this class only modify the gwtorm database.
Constructor and Description |
---|
ApprovalsUtil(ApprovalCopier copier,
PermissionBackend permissionBackend,
ProjectCache projectCache) |
Modifier and Type | Method and Description |
---|---|
java.lang.Iterable<PatchSetApproval> |
addApprovalsForNewPatchSet(ChangeUpdate update,
LabelTypes labelTypes,
PatchSet ps,
CurrentUser user,
java.util.Map<java.lang.String,java.lang.Short> approvals)
Adds approvals to ChangeUpdate for a new patch set, and writes to NoteDb.
|
java.util.Collection<Account.Id> |
addCcs(ChangeNotes notes,
ChangeUpdate update,
java.util.Collection<Account.Id> wantCCs)
Adds accounts to a change as reviewers in the CC state.
|
java.util.List<PatchSetApproval> |
addReviewers(ChangeNotes notes,
ChangeUpdate update,
LabelTypes labelTypes,
Change change,
java.lang.Iterable<Account.Id> wantReviewers) |
java.util.List<PatchSetApproval> |
addReviewers(ChangeUpdate update,
LabelTypes labelTypes,
Change change,
PatchSet ps,
PatchSetInfo info,
java.lang.Iterable<Account.Id> wantReviewers,
java.util.Collection<Account.Id> existingReviewers) |
com.google.common.collect.ListMultimap<PatchSet.Id,PatchSetApproval> |
byChange(ChangeNotes notes) |
java.lang.Iterable<PatchSetApproval> |
byPatchSet(ChangeNotes notes,
PatchSet.Id psId,
org.eclipse.jgit.revwalk.RevWalk rw,
org.eclipse.jgit.lib.Config repoConfig) |
java.lang.Iterable<PatchSetApproval> |
byPatchSetUser(ChangeNotes notes,
PatchSet.Id psId,
Account.Id accountId,
org.eclipse.jgit.revwalk.RevWalk rw,
org.eclipse.jgit.lib.Config repoConfig) |
static void |
checkLabel(LabelTypes labelTypes,
java.lang.String name,
java.lang.Short value) |
ReviewerSet |
getReviewers(ChangeNotes notes)
Get all reviewers for a change.
|
ReviewerSet |
getReviewers(ChangeNotes notes,
java.lang.Iterable<PatchSetApproval> allApprovals)
Get all reviewers and CCed accounts for a change.
|
java.util.List<ReviewerStatusUpdate> |
getReviewerUpdates(ChangeNotes notes)
Get updates to reviewer set.
|
PatchSetApproval |
getSubmitter(ChangeNotes notes,
PatchSet.Id c) |
static PatchSetApproval |
getSubmitter(PatchSet.Id c,
java.lang.Iterable<PatchSetApproval> approvals) |
static PatchSetApproval |
newApproval(PatchSet.Id psId,
CurrentUser user,
LabelId labelId,
int value,
java.util.Date when) |
static java.lang.String |
renderMessageWithApprovals(int patchSetId,
java.util.Map<java.lang.String,java.lang.Short> n,
java.util.Map<java.lang.String,PatchSetApproval> c) |
@Inject public ApprovalsUtil(ApprovalCopier copier, PermissionBackend permissionBackend, ProjectCache projectCache)
public static PatchSetApproval newApproval(PatchSet.Id psId, CurrentUser user, LabelId labelId, int value, java.util.Date when)
public ReviewerSet getReviewers(ChangeNotes notes)
notes
- change notes.public ReviewerSet getReviewers(ChangeNotes notes, java.lang.Iterable<PatchSetApproval> allApprovals)
allApprovals
- all approvals to consider; must all belong to the same change.public java.util.List<ReviewerStatusUpdate> getReviewerUpdates(ChangeNotes notes)
notes
- change notes.public java.util.List<PatchSetApproval> addReviewers(ChangeUpdate update, LabelTypes labelTypes, Change change, PatchSet ps, PatchSetInfo info, java.lang.Iterable<Account.Id> wantReviewers, java.util.Collection<Account.Id> existingReviewers)
public java.util.List<PatchSetApproval> addReviewers(ChangeNotes notes, ChangeUpdate update, LabelTypes labelTypes, Change change, java.lang.Iterable<Account.Id> wantReviewers)
public java.util.Collection<Account.Id> addCcs(ChangeNotes notes, ChangeUpdate update, java.util.Collection<Account.Id> wantCCs)
notes
- change notes.update
- change update.wantCCs
- accounts to CC.public java.lang.Iterable<PatchSetApproval> addApprovalsForNewPatchSet(ChangeUpdate update, LabelTypes labelTypes, PatchSet ps, CurrentUser user, java.util.Map<java.lang.String,java.lang.Short> approvals) throws RestApiException, PermissionBackendException
update
- change update.labelTypes
- label types for the containing project.ps
- patch set being approved.user
- user adding approvals.approvals
- approvals to add.RestApiException
PermissionBackendException
public static void checkLabel(LabelTypes labelTypes, java.lang.String name, java.lang.Short value) throws BadRequestException
BadRequestException
public com.google.common.collect.ListMultimap<PatchSet.Id,PatchSetApproval> byChange(ChangeNotes notes)
public java.lang.Iterable<PatchSetApproval> byPatchSet(ChangeNotes notes, PatchSet.Id psId, org.eclipse.jgit.revwalk.RevWalk rw, org.eclipse.jgit.lib.Config repoConfig)
public java.lang.Iterable<PatchSetApproval> byPatchSetUser(ChangeNotes notes, PatchSet.Id psId, Account.Id accountId, org.eclipse.jgit.revwalk.RevWalk rw, org.eclipse.jgit.lib.Config repoConfig)
public PatchSetApproval getSubmitter(ChangeNotes notes, PatchSet.Id c)
public static PatchSetApproval getSubmitter(PatchSet.Id c, java.lang.Iterable<PatchSetApproval> approvals)
public static java.lang.String renderMessageWithApprovals(int patchSetId, java.util.Map<java.lang.String,java.lang.Short> n, java.util.Map<java.lang.String,PatchSetApproval> c)