package hudson.plugins.kagemai;
import hudson.model.AbstractBuild;
import hudson.model.Action;
import hudson.plugins.kagemai.model.KagemaiIssue;
import java.util.List;
/**
* Kagemai issues related to the build.
*
* @author yamkazu
*
*/
public class KagemaiBuildAction implements Action {
private AbstractBuild<?, ?> owner;
private List<KagemaiIssue> issues;
private String siteName;
private String projectId;
public KagemaiBuildAction(AbstractBuild<?, ?> owner,
List<KagemaiIssue> issues, String siteName, String projectId) {
this.owner = owner;
this.issues = issues;
this.siteName = siteName;
this.projectId = projectId;
}
public String getIssuesList() {
KagemaiProjectProperty kagemaiProjectProperty = owner.getParent()
.getProperty(KagemaiProjectProperty.class);
if (kagemaiProjectProperty == null
|| kagemaiProjectProperty.getSite() == null) {
return "";
}
String baseUrl = kagemaiProjectProperty.getSite().getBaseUrl()
.toExternalForm();
String projectId = kagemaiProjectProperty.getProjectId();
StringBuilder sb = new StringBuilder();
for (KagemaiIssue issue : issues) {
sb.append(String.format(new StringBuilder().append("<li>").append(
KagemaiSession.LINK_FORMAT).append(issue.getId()).append(
"</a>").append(" - ").append(issue.getSummary()).append(
"</li>").append("\n").toString(), baseUrl, projectId, issue
.getId()));
}
return sb.toString();
}
public List<KagemaiIssue> getIssues() {
return issues;
}
public String getSiteName() {
return siteName;
}
public String getProjectId() {
return projectId;
}
public String getDisplayName() {
return Messages.action_dispname();
}
public String getIconFileName() {
return "/plugin/kagemai/images/kagemai.gif";
}
public String getUrlName() {
return "kagemaiResult";
}
public AbstractBuild<?, ?> getOwner() {
return this.owner;
}
}