package hudson.plugins.jira; import hudson.model.AbstractBuild; import hudson.model.Action; import java.util.Arrays; import java.util.Collection; import java.util.Set; import java.util.SortedSet; import java.util.TreeSet; /** * JIRA issues related to the build. * * @author Kohsuke Kawaguchi */ public class JiraBuildAction implements Action { public final AbstractBuild<?, ?> owner; public JiraIssue[] issues; public JiraBuildAction(AbstractBuild<?, ?> owner, Collection<JiraIssue> issues) { this.owner = owner; this.issues = issues.toArray(new JiraIssue[issues.size()]); Arrays.sort(this.issues); } public String getIconFileName() { return null; } public String getDisplayName() { return Messages.JiraBuildAction_DisplayName(); } public String getUrlName() { return "jira"; } /** * Finds {@link JiraIssue} whose ID matches the given one. */ public JiraIssue getIssue(String id) { for (JiraIssue issue : issues) { if(issue.id.equals(id)) return issue; } return null; } public void addIssues(Set<JiraIssue> issuesToBeSaved) { SortedSet<JiraIssue> allIssues = new TreeSet<JiraIssue>(); allIssues.addAll(issuesToBeSaved); allIssues.addAll(Arrays.asList(this.issues)); this.issues = allIssues.toArray(new JiraIssue[allIssues.size()]); } }