All Downloads are FREE. Search and download functionalities are using the official Maven repository.

hudson.model.ParametersAction Maven / Gradle / Ivy

package hudson.model;

import hudson.Util;
import hudson.tasks.BuildWrapper;
import hudson.util.VariableResolver;

import java.util.Collection;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

/**
 * Records the parameter values used for a build.
 *
 * 

* This object is associated with the build record so that we remember what parameters * were used for what build. */ public class ParametersAction implements Action, Iterable { private final List parameters; private final AbstractBuild build; public ParametersAction(List parameters, AbstractBuild build) { this.parameters = parameters; this.build = build; } public void createBuildWrappers(AbstractBuild build, Collection result) { for (ParameterValue p : parameters) { BuildWrapper w = p.createBuildWrapper(build); if(w!=null) result.add(w); } } public void buildEnvVars(AbstractBuild build, Map env) { for (ParameterValue p : parameters) p.buildEnvVars(build,env); } /** * Performs a variable subsitution to the given text and return it. */ public String substitute(AbstractBuild build, String text) { return Util.replaceMacro(text,createVariableResolver(build)); } /** * Creates an {@link VariableResolver} that aggregates all the parameters. */ public VariableResolver createVariableResolver(AbstractBuild build) { VariableResolver[] resolvers = new VariableResolver[parameters.size()]; int i=0; for (ParameterValue p : parameters) resolvers[i++] = p.createVariableResolver(build); return new VariableResolver.Union(resolvers); } public AbstractBuild getBuild() { return build; } public Iterator iterator() { return parameters.iterator(); } public List getParameters() { return parameters; } @Override public String getDisplayName() { return "Parameters"; } @Override public String getIconFileName() { return "document-properties.gif"; } @Override public String getUrlName() { return "parameters"; } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy