package hudson.plugins.parameterizedtrigger.matrix;
import hudson.Extension;
import hudson.matrix.MatrixConfiguration;
import hudson.model.AbstractBuild;
import hudson.model.Action;
import hudson.model.Descriptor;
import hudson.model.TaskListener;
import hudson.plugins.parameterizedtrigger.AbstractBuildParameters;
import org.kohsuke.stapler.DataBoundConstructor;
import java.io.IOException;
/**
* Build parameter that controls which subset of {@link MatrixConfiguration} a downstream build will run.
*
* @author Kohsuke Kawaguchi
*/
public class MatrixSubsetBuildParameters extends AbstractBuildParameters {
private final String filter;
@DataBoundConstructor
public MatrixSubsetBuildParameters(String filter) {
this.filter = filter;
}
public String getFilter() {
return filter;
}
@Override
public Action getAction(AbstractBuild<?,?> build, TaskListener listener) throws IOException, InterruptedException {
return new MatrixSubsetAction(getEnvironment(build, listener).expand(filter));
}
@Extension
public static class DescriptorImpl extends Descriptor<AbstractBuildParameters> {
@Override
public String getDisplayName() {
return Messages.MatrixSubsetBuildParameters_DisplayName();
}
}
}