/** * Hudson Serenitec plugin * * @author Georges Bossert <gbossert@gmail.com> * @version $Revision: 1.3 $ * @since $Date: 2008/07/16 14:52:22 ${date} * @copyright Universit� de Rennes 1 */ package hudson.plugins.serenitec; import hudson.Extension; import hudson.FilePath; import hudson.model.AbstractProject; import hudson.tasks.BuildStepDescriptor; import hudson.util.FormValidation; import java.io.IOException; import javax.servlet.ServletException; import net.sf.json.JSONObject; import org.kohsuke.stapler.AncestorInPath; import org.kohsuke.stapler.QueryParameter; import org.kohsuke.stapler.StaplerRequest; import hudson.plugins.serenitec.util.ThresholdValidator; import hudson.tasks.Builder; /** * The class SerenitecDescriptor declares the methods in charge of the maven * plugin. * * @version $Revision: 1.3 $ * @since $Date: 2008/07/16 14:52:22 ${date} * @goal refactor * @phase process-sources */ @Extension public class SerenitecDescriptorBuilder extends BuildStepDescriptor < Builder > { /** * Icons to use. */ private static final String ACTION_ICON = "/plugin/serenitec/icons/warnings-24x24.png"; /** * Plugin Name. */ private static final String PLUGIN_NAME = "Serenitec"; /** * Constructor. */ public SerenitecDescriptorBuilder() { super(SerenitecBuilder.class); } /** * Check Patterns * @throws java.io.IOException */ public final FormValidation doCheckPattern(@AncestorInPath AbstractProject project, @QueryParameter String value) throws IOException { return FilePath.validateFileMask(project.getSomeWorkspace(),value); } /** * Check Threshold */ public final FormValidation doCheckThreshold(@QueryParameter String value) { return ThresholdValidator.check(value); } @Override public String getDisplayName() { return "Publish Serenitec Builder Refactor"; } @Override public final String getHelpFile() { return "/plugin/" + getPluginName() + "/help.html"; } public String getIconUrl() { return ACTION_ICON; } public String getPluginName() { return PLUGIN_NAME; } public final String getPluginResultUrlName() { return getPluginName() + "Result"; } @Override public boolean isApplicable( final Class <? extends AbstractProject > jobType) { return true; } @Override public SerenitecBuilder newInstance(final StaplerRequest request, final JSONObject formData) throws FormException { return request.bindJSON(SerenitecBuilder.class, formData); } }