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(NotesMigration migration,
ApprovalCopier copier,
PermissionBackend permissionBackend,
ProjectCache projectCache) |
Modifier and Type | Method and Description |
---|---|
java.lang.Iterable<PatchSetApproval> |
addApprovalsForNewPatchSet(ReviewDb db,
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 ReviewDb.
|
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(ReviewDb db,
ChangeNotes notes,
ChangeUpdate update,
LabelTypes labelTypes,
Change change,
java.lang.Iterable<Account.Id> wantReviewers) |
java.util.List<PatchSetApproval> |
addReviewers(ReviewDb db,
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(ReviewDb db,
ChangeNotes notes) |
java.lang.Iterable<PatchSetApproval> |
byPatchSet(ReviewDb db,
ChangeNotes notes,
PatchSet.Id psId,
org.eclipse.jgit.revwalk.RevWalk rw,
org.eclipse.jgit.lib.Config repoConfig) |
java.lang.Iterable<PatchSetApproval> |
byPatchSetUser(ReviewDb db,
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,
java.lang.Iterable<PatchSetApproval> allApprovals)
Get all reviewers and CCed accounts for a change.
|
ReviewerSet |
getReviewers(ReviewDb db,
ChangeNotes notes)
Get all reviewers for a change.
|
java.util.List<ReviewerStatusUpdate> |
getReviewerUpdates(ChangeNotes notes)
Get updates to reviewer set.
|
static PatchSetApproval |
getSubmitter(PatchSet.Id c,
java.lang.Iterable<PatchSetApproval> approvals) |
PatchSetApproval |
getSubmitter(ReviewDb db,
ChangeNotes notes,
PatchSet.Id c) |
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) |
static java.util.List<PatchSetApproval> |
sortApprovals(java.lang.Iterable<PatchSetApproval> approvals) |
@Inject public ApprovalsUtil(NotesMigration migration, ApprovalCopier copier, PermissionBackend permissionBackend, ProjectCache projectCache)
public static java.util.List<PatchSetApproval> sortApprovals(java.lang.Iterable<PatchSetApproval> approvals)
public static PatchSetApproval newApproval(PatchSet.Id psId, CurrentUser user, LabelId labelId, int value, java.util.Date when)
public ReviewerSet getReviewers(ReviewDb db, ChangeNotes notes) throws com.google.gwtorm.server.OrmException
db
- review database.notes
- change notes.com.google.gwtorm.server.OrmException
- if reviewers for the change could not be read.public ReviewerSet getReviewers(ChangeNotes notes, java.lang.Iterable<PatchSetApproval> allApprovals) throws com.google.gwtorm.server.OrmException
allApprovals
- all approvals to consider; must all belong to the same change.com.google.gwtorm.server.OrmException
- if reviewers for the change could not be read.public java.util.List<ReviewerStatusUpdate> getReviewerUpdates(ChangeNotes notes) throws com.google.gwtorm.server.OrmException
notes
- change notes.com.google.gwtorm.server.OrmException
- if reviewer updates for the change could not be read.public java.util.List<PatchSetApproval> addReviewers(ReviewDb db, ChangeUpdate update, LabelTypes labelTypes, Change change, PatchSet ps, PatchSetInfo info, java.lang.Iterable<Account.Id> wantReviewers, java.util.Collection<Account.Id> existingReviewers) throws com.google.gwtorm.server.OrmException
com.google.gwtorm.server.OrmException
public java.util.List<PatchSetApproval> addReviewers(ReviewDb db, ChangeNotes notes, ChangeUpdate update, LabelTypes labelTypes, Change change, java.lang.Iterable<Account.Id> wantReviewers) throws com.google.gwtorm.server.OrmException
com.google.gwtorm.server.OrmException
public java.util.Collection<Account.Id> addCcs(ChangeNotes notes, ChangeUpdate update, java.util.Collection<Account.Id> wantCCs) throws com.google.gwtorm.server.OrmException
notes
- change notes.update
- change update.wantCCs
- accounts to CC.com.google.gwtorm.server.OrmException
public java.lang.Iterable<PatchSetApproval> addApprovalsForNewPatchSet(ReviewDb db, ChangeUpdate update, LabelTypes labelTypes, PatchSet ps, CurrentUser user, java.util.Map<java.lang.String,java.lang.Short> approvals) throws RestApiException, com.google.gwtorm.server.OrmException, PermissionBackendException
db
- review database.update
- change update.labelTypes
- label types for the containing project.ps
- patch set being approved.user
- user adding approvals.approvals
- approvals to add.RestApiException
com.google.gwtorm.server.OrmException
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(ReviewDb db, ChangeNotes notes) throws com.google.gwtorm.server.OrmException
com.google.gwtorm.server.OrmException
public java.lang.Iterable<PatchSetApproval> byPatchSet(ReviewDb db, ChangeNotes notes, PatchSet.Id psId, org.eclipse.jgit.revwalk.RevWalk rw, org.eclipse.jgit.lib.Config repoConfig) throws com.google.gwtorm.server.OrmException
com.google.gwtorm.server.OrmException
public java.lang.Iterable<PatchSetApproval> byPatchSetUser(ReviewDb db, ChangeNotes notes, PatchSet.Id psId, Account.Id accountId, org.eclipse.jgit.revwalk.RevWalk rw, org.eclipse.jgit.lib.Config repoConfig) throws com.google.gwtorm.server.OrmException
com.google.gwtorm.server.OrmException
public PatchSetApproval getSubmitter(ReviewDb db, 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)