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,
IdentifiedUser.GenericFactory userFactory,
ApprovalCopier copier,
PermissionBackend permissionBackend) |
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,
CurrentUser user,
PatchSet.Id psId,
org.eclipse.jgit.revwalk.RevWalk rw,
org.eclipse.jgit.lib.Config repoConfig) |
java.lang.Iterable<PatchSetApproval> |
byPatchSetUser(ReviewDb db,
ChangeNotes notes,
CurrentUser user,
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, IdentifiedUser.GenericFactory userFactory, ApprovalCopier copier, PermissionBackend permissionBackend)
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, CurrentUser user, 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, CurrentUser user, 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)