package com.smartcodeltd.jenkinsci.plugins.buildmonitor.viewmodel.features.headline;
import com.google.common.collect.Sets;
import com.smartcodeltd.jenkinsci.plugins.buildmonitor.readability.Lister;
import com.smartcodeltd.jenkinsci.plugins.buildmonitor.viewmodel.BuildViewModel;
import com.smartcodeltd.jenkinsci.plugins.buildmonitor.viewmodel.JobView;
import java.util.Set;
import static com.google.common.collect.Lists.newArrayList;
public class HeadlineOfExecuting implements CandidateHeadline {
private final JobView job;
private final HeadlineConfig config;
public HeadlineOfExecuting(JobView job, HeadlineConfig config) {
this.job = job;
this.config = config;
}
@Override
public boolean isApplicableTo(JobView someJob) {
return someJob.lastBuild().isRunning();
}
@Override
public Headline asJson() {
return new Headline(text(job.lastBuild()));
}
private String text(BuildViewModel build) {
return Lister.describe(
"",
"Building %s's changes",
newArrayList(committersOf(build))
);
}
private Set<String> committersOf(BuildViewModel build) {
return config.displayCommitters
? build.committers()
: Sets.<String>newHashSet();
}
}