Package hudson.plugins.parameterizedtrigger

Source Code of hudson.plugins.parameterizedtrigger.ProjectSpecificParametersActionFactory

package hudson.plugins.parameterizedtrigger;

import hudson.model.AbstractProject;
import hudson.model.Action;
import hudson.model.ParametersAction;

import java.util.List;
import java.util.ArrayList;
import java.util.Arrays;

public class ProjectSpecificParametersActionFactory {

    List<ITransformProjectParametersAction> transforms;

    public ProjectSpecificParametersActionFactory(ITransformProjectParametersAction... transforms) {
        super();
        this.transforms = new ArrayList<ITransformProjectParametersAction>(Arrays.asList(transforms));
    }

    public final List<Action> getProjectSpecificBuildActions(List<Action> baseActions, AbstractProject<?,?> project) {
        List<Action> actions = new ArrayList<Action>();
        ParametersAction pa = getParametersAction(baseActions);

        // Copy everything except the ParametersAction
        for (Action a : baseActions) {
            if (! (a instanceof ParametersAction)) {
                actions.add(a);
            }
        }

        for (ITransformProjectParametersAction transform : transforms) {
            pa = transform.transformParametersAction(pa, project);
        }

        actions.add(pa);

        return actions;
    }

    private static ParametersAction getParametersAction(List<Action> actions) {
        for (Action a : actions) {
            if (a instanceof ParametersAction) {
                return (ParametersAction)a;
            }
        }

        return new ParametersAction();
    }
}
TOP

Related Classes of hudson.plugins.parameterizedtrigger.ProjectSpecificParametersActionFactory

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.