package hudson.plugins.emailext.plugins.content;
import hudson.model.AbstractBuild;
import hudson.model.AbstractProject;
import hudson.model.Cause;
import hudson.model.CauseAction;
import hudson.plugins.emailext.EmailType;
import hudson.plugins.emailext.ExtendedEmailPublisher;
import hudson.plugins.emailext.plugins.EmailContent;
import org.apache.commons.lang.StringUtils;
import java.util.Collections;
import java.util.LinkedList;
import java.util.List;
import java.util.Map;
public class CauseContent
implements EmailContent {
private static final String TOKEN = "CAUSE";
public String getToken() {
return TOKEN;
}
public List<String> getArguments() {
return Collections.emptyList();
}
public String getHelpText() {
return "Displays the cause of the build.\n";
}
public <P extends AbstractProject<P, B>, B extends AbstractBuild<P, B>>
String getContent(AbstractBuild<P, B> build, ExtendedEmailPublisher publisher,
EmailType emailType, Map<String, ?> args) {
List<Cause> causes = new LinkedList<Cause>();
CauseAction causeAction = build.getAction(CauseAction.class);
if (causeAction != null) {
causes = causeAction.getCauses();
}
return formatCauses(causes);
}
private String formatCauses(List<Cause> causes) {
if (causes.isEmpty()) {
return "N/A";
}
List<String> causeNames = new LinkedList<String>();
for (Cause cause : causes) {
causeNames.add(cause.getShortDescription());
}
return StringUtils.join(causeNames, ", ");
}
public boolean hasNestedContent() {
return false;
}
}