| | |
| | | import java.util.LinkedHashSet; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | import java.util.NoSuchElementException; |
| | | import java.util.Set; |
| | | import java.util.TreeSet; |
| | | import java.util.regex.Matcher; |
| | |
| | | } |
| | | |
| | | public boolean hasComment() { |
| | | return comment != null && !comment.isDeleted(); |
| | | return comment != null && !comment.isDeleted() && comment.text != null; |
| | | } |
| | | |
| | | public Comment comment(String text) { |
| | |
| | | for (String item : items) { |
| | | list.add(prefix + item); |
| | | } |
| | | setField(field, join(list, ",")); |
| | | if (hasField(field)) { |
| | | String flat = getString(field); |
| | | if (isEmpty(flat)) { |
| | | // field is empty, use this list |
| | | setField(field, join(list, ",")); |
| | | } else { |
| | | // merge this list into the existing field list |
| | | Set<String> set = new TreeSet<String>(Arrays.asList(flat.split(","))); |
| | | set.addAll(list); |
| | | setField(field, join(set, ",")); |
| | | } |
| | | } else { |
| | | // does not have a list for this field |
| | | setField(field, join(list, ",")); |
| | | } |
| | | } |
| | | |
| | | public String getId() { |
| | |
| | | } |
| | | |
| | | public static enum Score { |
| | | approved(2), looks_good(1), not_reviewed(0), needs_improvement(-1), vetoed(-2); |
| | | approved(2), looks_good(1), not_reviewed(0), needs_improvement(-1), vetoed( |
| | | -2); |
| | | |
| | | final int value; |
| | | |
| | |
| | | @Override |
| | | public String toString() { |
| | | return name().toLowerCase().replace('_', ' '); |
| | | } |
| | | |
| | | public static Score fromScore(int score) { |
| | | for (Score s : values()) { |
| | | if (s.getValue() == score) { |
| | | return s; |
| | | } |
| | | } |
| | | throw new NoSuchElementException(String.valueOf(score)); |
| | | } |
| | | } |
| | | |
| | |
| | | } |
| | | |
| | | public static enum Status { |
| | | New, Open, Resolved, Fixed, Merged, Wontfix, Declined, Duplicate, Invalid, On_Hold; |
| | | New, Open, Closed, Resolved, Fixed, Merged, Wontfix, Declined, Duplicate, Invalid, Abandoned, On_Hold, No_Change_Required; |
| | | |
| | | public static Status [] requestWorkflow = { Open, Resolved, Declined, Duplicate, Invalid, On_Hold }; |
| | | public static Status [] requestWorkflow = { Open, Resolved, Declined, Duplicate, Invalid, Abandoned, On_Hold, No_Change_Required }; |
| | | |
| | | public static Status [] bugWorkflow = { Open, Fixed, Wontfix, Duplicate, Invalid, On_Hold }; |
| | | public static Status [] bugWorkflow = { Open, Fixed, Wontfix, Duplicate, Invalid, Abandoned, On_Hold, No_Change_Required }; |
| | | |
| | | public static Status [] proposalWorkflow = { Open, Resolved, Declined, On_Hold}; |
| | | public static Status [] proposalWorkflow = { Open, Resolved, Declined, Abandoned, On_Hold, No_Change_Required }; |
| | | |
| | | public static Status [] milestoneWorkflow = { Open, Closed, Abandoned, On_Hold }; |
| | | |
| | | @Override |
| | | public String toString() { |