package hudson.plugins.jira.selector;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import javax.annotation.CheckForNull;
import hudson.Extension;
import hudson.model.Descriptor;
import hudson.plugins.jira.Messages;
import org.apache.commons.lang.StringUtils;
import org.kohsuke.stapler.DataBoundConstructor;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import hudson.model.Run;
import hudson.model.TaskListener;
import hudson.plugins.jira.JiraSite;
public class ExplicitIssueSelector extends AbstractIssueSelector {
@CheckForNull
private List<String> jiraIssueKeys;
private String issueKeys;
@DataBoundConstructor
public ExplicitIssueSelector(String issueKeys) {
this.jiraIssueKeys = StringUtils.isNotBlank(issueKeys) ? Lists.newArrayList(issueKeys.split(",")) : Collections.<String>emptyList();
this.issueKeys = issueKeys;
}
public ExplicitIssueSelector(List<String> jiraIssueKeys) {
this.jiraIssueKeys = jiraIssueKeys;
}
public ExplicitIssueSelector(){
this.jiraIssueKeys = Collections.<String>emptyList();
}
public void setIssueKeys(String issueKeys){
this.issueKeys = issueKeys;
this.jiraIssueKeys = Lists.newArrayList(issueKeys.split(","));
}
public String getIssueKeys(){
return issueKeys;
}
@Override
public Set<String> findIssueIds(Run<?, ?> run, JiraSite site, TaskListener listener) {
return Sets.newHashSet(jiraIssueKeys);
}
@Extension
public static final class DescriptorImpl extends Descriptor<AbstractIssueSelector> {
@Override
public String getDisplayName() {
return Messages.IssueSelector_ExplicitIssueSelector_DisplayName();
}
}
}