// Path: src/main/java/org/jenkinsci/plugins/SemanticVersioning/naming/NamingStrategy.java
// public interface NamingStrategy extends Describable<NamingStrategy>, Serializable {
// 	String exportNames(AppVersion current, Map<String, String> vars, boolean useBuildNumber, int buildNumber);
// }
// 
// Path: src/main/java/org/jenkinsci/plugins/SemanticVersioning/naming/NoopNamingStrategy.java
// @Extension
// public class NoopNamingStrategy implements NamingStrategy, Serializable {
// 
//     private static Logger logger = Logger.getLogger(String.valueOf(AppVersion.class));
// 
//     public Descriptor<NamingStrategy> getDescriptor() {
// 		return new AbstractSemanticParserDescription() {
// 			
// 			@Override
// 			public String getDisplayName() {
// 				
// 				return Messages.NamingStrategies.NOOP_NAMING;
// 			}
// 		};
// 	}
// 
// 	public String exportNames(AppVersion current, Map<String,String> vars, boolean useBuildNumber, int buildNumber) {
// 		// it's called "noop", d'oh!
//         logger.info("SemanticVersioningProcessor::getAppVersion -> not setting anything (NOOP): " + current.toJsonString());
//         return current.toString();
// 	}
// 
// }
// 
// Path: src/main/java/org/jenkinsci/plugins/SemanticVersioning/parsing/BuildDefinitionParser.java
// public interface BuildDefinitionParser extends Describable<BuildDefinitionParser> {
//     AppVersion extractAppVersion(FilePath workspace, PrintStream logger) throws IOException, InvalidBuildFileFormatException;
// }


import hudson.Extension;
import hudson.FilePath;
import hudson.Launcher;
import hudson.model.BuildListener;
import hudson.model.TaskListener;
import hudson.model.AbstractBuild;
import hudson.tasks.BuildStepDescriptor;
import hudson.tasks.BuildStepMonitor;
import hudson.tasks.Builder;
import hudson.util.ListBoxModel;
import java.io.File;
import java.io.IOException;
import java.io.PrintStream;
import java.util.HashMap;
import jenkins.model.Jenkins;
import net.sf.json.JSONObject;
import org.apache.commons.io.FileUtils;
import org.jenkinsci.plugins.SemanticVersioning.naming.NamingStrategy;
import org.jenkinsci.plugins.SemanticVersioning.naming.NoopNamingStrategy;
import org.jenkinsci.plugins.SemanticVersioning.parsing.BuildDefinitionParser;
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.StaplerRequest;
        }
    }

    public String getEnvVariable() {
		return envVariable;
	}

	public void setEnvVariable(String envVariable) {
		this.envVariable = envVariable;
	}

	@Extension(ordinal = 9999)
    public static final class SemanticVersioningBuilderDescriptor extends BuildStepDescriptor<Builder> {
        /**
         * In order to load the persisted global configuration, you have to call
         * load() in the constructor.
         */
        public SemanticVersioningBuilderDescriptor() {
            super(SemanticVersioningBuilder.class);
            load();
        }

        /**
         * Generates ListBoxModel for available BuildDefinitionParsers
         *
         * @return available BuildDefinitionParsers as ListBoxModel
         */
        public ListBoxModel doFillParserItems() {
            ListBoxModel parsersModel = new ListBoxModel();
            for (BuildDefinitionParser parser : Jenkins.getActiveInstance()
// Path: src/main/java/org/jenkinsci/plugins/SemanticVersioning/naming/NamingStrategy.java
// public interface NamingStrategy extends Describable<NamingStrategy>, Serializable {
// 	String exportNames(AppVersion current, Map<String, String> vars, boolean useBuildNumber, int buildNumber);
// }
// 
// Path: src/main/java/org/jenkinsci/plugins/SemanticVersioning/naming/NoopNamingStrategy.java
// @Extension
// public class NoopNamingStrategy implements NamingStrategy, Serializable {
// 
//     private static Logger logger = Logger.getLogger(String.valueOf(AppVersion.class));
// 
//     public Descriptor<NamingStrategy> getDescriptor() {
// 		return new AbstractSemanticParserDescription() {
// 			
// 			@Override
// 			public String getDisplayName() {
// 				
// 				return Messages.NamingStrategies.NOOP_NAMING;
// 			}
// 		};
// 	}
// 
// 	public String exportNames(AppVersion current, Map<String,String> vars, boolean useBuildNumber, int buildNumber) {
// 		// it's called "noop", d'oh!
//         logger.info("SemanticVersioningProcessor::getAppVersion -> not setting anything (NOOP): " + current.toJsonString());
//         return current.toString();
// 	}
// 
// }
// 
// Path: src/main/java/org/jenkinsci/plugins/SemanticVersioning/parsing/BuildDefinitionParser.java
// public interface BuildDefinitionParser extends Describable<BuildDefinitionParser> {
//     AppVersion extractAppVersion(FilePath workspace, PrintStream logger) throws IOException, InvalidBuildFileFormatException;
// }


// Path: src/main/java/org/jenkinsci/plugins/SemanticVersioning/SemanticVersioningBuilder.java
import hudson.Extension;
import hudson.FilePath;
import hudson.Launcher;
import hudson.model.BuildListener;
import hudson.model.TaskListener;
import hudson.model.AbstractBuild;
import hudson.tasks.BuildStepDescriptor;
import hudson.tasks.BuildStepMonitor;
import hudson.tasks.Builder;
import hudson.util.ListBoxModel;
import java.io.File;
import java.io.IOException;
import java.io.PrintStream;
import java.util.HashMap;
import jenkins.model.Jenkins;
import net.sf.json.JSONObject;
import org.apache.commons.io.FileUtils;
import org.jenkinsci.plugins.SemanticVersioning.naming.NamingStrategy;
import org.jenkinsci.plugins.SemanticVersioning.naming.NoopNamingStrategy;
import org.jenkinsci.plugins.SemanticVersioning.parsing.BuildDefinitionParser;
import org.kohsuke.stapler.DataBoundConstructor;
import org.kohsuke.stapler.StaplerRequest;

        }
    }

    public String getEnvVariable() {
		return envVariable;
	}

	public void setEnvVariable(String envVariable) {
		this.envVariable = envVariable;
	}

	@Extension(ordinal = 9999)
    public static final class SemanticVersioningBuilderDescriptor extends BuildStepDescriptor<Builder> {
        /**
         * In order to load the persisted global configuration, you have to call
         * load() in the constructor.
         */
        public SemanticVersioningBuilderDescriptor() {
            super(SemanticVersioningBuilder.class);
            load();
        }

        /**
         * Generates ListBoxModel for available BuildDefinitionParsers
         *
         * @return available BuildDefinitionParsers as ListBoxModel
         */
        public ListBoxModel doFillParserItems() {
            ListBoxModel parsersModel = new ListBoxModel();
            for (BuildDefinitionParser parser : Jenkins.getActiveInstance()
                    .getExtensionList(BuildDefinitionParser.class)) {