package hudson.plugins.tfs.model;
import hudson.Extension;
import hudson.FilePath;
import hudson.model.AbstractDescribableImpl;
import hudson.model.AbstractProject;
import hudson.model.Descriptor;
import hudson.util.FormValidation;
import hudson.util.ListBoxModel;
import org.kohsuke.stapler.AncestorInPath;
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.DataBoundSetter;
import org.kohsuke.stapler.QueryParameter;
import java.io.IOException;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
public class TeamRequestedResult extends AbstractDescribableImpl<TeamRequestedResult> {
private final TeamResultType teamResultType;
private String includes;
@DataBoundConstructor
public TeamRequestedResult(final TeamResultType teamResultType) {
this.teamResultType = teamResultType;
}
public TeamResultType getTeamResultType() {
return teamResultType;
}
public String getIncludes() {
return includes;
}
@DataBoundSetter
public void setIncludes(final String includes) {
this.includes = includes;
}
@Extension
public static class DescriptorImpl extends Descriptor<TeamRequestedResult> {
@Override
public String getDisplayName() {
return "Requested build result";
}
@SuppressWarnings("unused")
public ListBoxModel doFillTeamResultTypeItems() {
final TeamResultType[] values = TeamResultType.values();
final ListBoxModel result = new ListBoxModel(values.length);
for (final TeamResultType value : values) {
result.add(value.getDisplayName(), value.name());
}
return result;
}
public FormValidation doCheckIncludes(
@AncestorInPath final AbstractProject project,
@QueryParameter final String value) throws IOException {
if (project == null) {
return FormValidation.ok();
}
return FilePath.validateFileMask(project.getSomeWorkspace(), value);
}
}
}