package hudson.plugins.im.bot;
import hudson.model.AbstractProject;
import hudson.model.View;
import java.util.List;
import jenkins.model.Jenkins;
/**
* Default {@link JobProvider} which directly accesses {@link Jenkins#getInstance()}.
*
* @author kutzi
*/
public class DefaultJobProvider implements JobProvider {
@Override
public AbstractProject<?, ?> getJobByName(String name) {
return Jenkins.getInstance().getItemByFullName(name, AbstractProject.class);
}
@SuppressWarnings("rawtypes")
@Override
public AbstractProject<?, ?> getJobByDisplayName(String displayName) {
List<AbstractProject> allItems = Jenkins.getInstance().getAllItems(AbstractProject.class);
for (AbstractProject job : allItems) {
if (displayName.equals(job.getDisplayName())) {
return job;
}
}
return null;
}
@Override
public AbstractProject<?, ?> getJobByNameOrDisplayName(String name) {
AbstractProject<?,?> jobByName = getJobByName(name);
return jobByName != null ? jobByName : getJobByDisplayName(name);
}
@SuppressWarnings("unchecked")
@Override
public List<AbstractProject<?,?>> getAllJobs() {
@SuppressWarnings("rawtypes")
List items = Jenkins.getInstance().getAllItems(AbstractProject.class);
return items;
}
@Override
@SuppressWarnings("unchecked")
public List<AbstractProject<?,?>> getTopLevelJobs() {
@SuppressWarnings("rawtypes")
List items = Jenkins.getInstance().getItems(AbstractProject.class);
return items;
}
@Override
public boolean isTopLevelJob(AbstractProject<?, ?> job) {
return Jenkins.getInstance().equals(job.getParent());
}
@Override
public View getView(String viewName) {
return Jenkins.getInstance().getView(viewName);
}
}