diff options
Diffstat (limited to 'gerrit-common/src/main/java/com/google/gerrit/common/data/ApprovalTypes.java')
-rw-r--r-- | gerrit-common/src/main/java/com/google/gerrit/common/data/ApprovalTypes.java | 47 |
1 files changed, 23 insertions, 24 deletions
diff --git a/gerrit-common/src/main/java/com/google/gerrit/common/data/ApprovalTypes.java b/gerrit-common/src/main/java/com/google/gerrit/common/data/ApprovalTypes.java index 1b6d4a3289..b1e32d1eb2 100644 --- a/gerrit-common/src/main/java/com/google/gerrit/common/data/ApprovalTypes.java +++ b/gerrit-common/src/main/java/com/google/gerrit/common/data/ApprovalTypes.java @@ -14,25 +14,22 @@ package com.google.gerrit.common.data; -import com.google.gerrit.reviewdb.ApprovalCategory; +import com.google.gerrit.reviewdb.client.ApprovalCategory; import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Set; public class ApprovalTypes { protected List<ApprovalType> approvalTypes; - protected List<ApprovalType> actionTypes; - private transient Map<ApprovalCategory.Id, ApprovalType> byCategoryId; + private transient Map<ApprovalCategory.Id, ApprovalType> byId; + private transient Map<String, ApprovalType> byLabel; protected ApprovalTypes() { } - public ApprovalTypes(final List<ApprovalType> approvals, - final List<ApprovalType> actions) { + public ApprovalTypes(final List<ApprovalType> approvals) { approvalTypes = approvals; - actionTypes = actions; byCategory(); } @@ -40,33 +37,35 @@ public class ApprovalTypes { return approvalTypes; } - public List<ApprovalType> getActionTypes() { - return actionTypes; - } - - public ApprovalType getApprovalType(final ApprovalCategory.Id id) { + public ApprovalType byId(final ApprovalCategory.Id id) { return byCategory().get(id); } - public Set<ApprovalCategory.Id> getApprovalCategories() { - return byCategory().keySet(); - } - private Map<ApprovalCategory.Id, ApprovalType> byCategory() { - if (byCategoryId == null) { - byCategoryId = new HashMap<ApprovalCategory.Id, ApprovalType>(); - if (actionTypes != null) { - for (final ApprovalType t : actionTypes) { - byCategoryId.put(t.getCategory().getId(), t); + if (byId == null) { + byId = new HashMap<ApprovalCategory.Id, ApprovalType>(); + if (approvalTypes != null) { + for (final ApprovalType t : approvalTypes) { + byId.put(t.getCategory().getId(), t); } } + } + return byId; + } + public ApprovalType byLabel(String labelName) { + return byLabel().get(labelName.toLowerCase()); + } + + private Map<String, ApprovalType> byLabel() { + if (byLabel == null) { + byLabel = new HashMap<String, ApprovalType>(); if (approvalTypes != null) { - for (final ApprovalType t : approvalTypes) { - byCategoryId.put(t.getCategory().getId(), t); + for (ApprovalType t : approvalTypes) { + byLabel.put(t.getCategory().getLabelName().toLowerCase(), t); } } } - return byCategoryId; + return byLabel; } } |