/**
* @return
*/
protected ConsoleParametersProcessor createParametersProcessor()
{
ConsoleParameter parameter;
ConsoleParametersProcessor parametersProcessor = new ConsoleParametersProcessor(getProgramName());
parameter = new ConsoleParameter("outputDir", "The folder where the compiled files will be created.", false, true);
parameter.addParameterOption(new ConsoleParameterOption("dirName", "Folder name"));
parametersProcessor.addSupportedParameter(parameter);
parameter = new ConsoleParameter("sourceDir", "The project source folder.", false, true);
parameter.addParameterOption(new ConsoleParameterOption("dirName", "Folder name"));
parametersProcessor.addSupportedParameter(parameter);
parameter = new ConsoleParameter("webDir", "The application web root folder.", false, true);
parameter.addParameterOption(new ConsoleParameterOption("dirName", "Folder name"));
parametersProcessor.addSupportedParameter(parameter);
parameter = new ConsoleParameter("classpathDir", "The classpath folder.", false, true);
parameter.addParameterOption(new ConsoleParameterOption("classpathDir", "Classpath dir"));
parametersProcessor.addSupportedParameter(parameter);
parameter = new ConsoleParameter("resourcesDir", "The resources folder.", false, true);
parameter.addParameterOption(new ConsoleParameterOption("resourcesDir", "Resources dir"));
parametersProcessor.addSupportedParameter(parameter);
parameter = new ConsoleParameter("pagesOutputDir", "The folder where the generated page files will be created.", false, true);
parameter.addParameterOption(new ConsoleParameterOption("output", "Folder name"));
parametersProcessor.addSupportedParameter(parameter);
parameter = new ConsoleParameter("scanAllowedPackages",
"A list of packages (separated by commas) that will be scanned to find Controllers, Modules and CrossDevices", false, true);
parameter.addParameterOption(new ConsoleParameterOption("allowed", "Allowed packages"));
parametersProcessor.addSupportedParameter(parameter);
parameter =new ConsoleParameter("scanIgnoredPackages",
"A list of packages (separated by commas) that will not be scanned to find Controllers, Modules and CrossDevices", false, true);
parameter.addParameterOption(new ConsoleParameterOption("ignored", "Ignored packages"));
parametersProcessor.addSupportedParameter(parameter);
parameter = new ConsoleParameter("outputCharset", "Charset used on output files", true, true);
parameter.addParameterOption(new ConsoleParameterOption("charset", "Output charset"));
parametersProcessor.addSupportedParameter(parameter);
parameter = new ConsoleParameter("pageFileExtension", "Extension of the pages generated", false, true);
parameter.addParameterOption(new ConsoleParameterOption("fileExtension", "File Extension"));
parametersProcessor.addSupportedParameter(parameter);
parametersProcessor.addSupportedParameter(new ConsoleParameter("-indentPages", "If true, the output pages will be indented.", false, true));
parametersProcessor.addSupportedParameter(new ConsoleParameter("-keepPagesGeneratedFiles",
"If false, the output pages will be removed after compilation.", false, true));
parametersProcessor.addSupportedParameter(new ConsoleParameter("-doNotPreCompileJavaSource", "Makes compiler ignore java pre compilation.", false, true));
parameter = new ConsoleParameter("-gen", "Specify the folder where the GWT generators will output generated classes.", false, true);
parameter.addParameterOption(new ConsoleParameterOption("genFolder", "Folder Name"));
parametersProcessor.addSupportedParameter(parameter);
parameter = new ConsoleParameter("-style", "Specify the output style for GWT generated code.", false, true);
parameter.addParameterOption(new ConsoleParameterOption("style", "GWT output Style"));
parametersProcessor.addSupportedParameter(parameter);
parameter = new ConsoleParameter("-extra", "The directory into which extra files, not intended for deployment, will be written.", false, true);
parameter.addParameterOption(new ConsoleParameterOption("extraFolder", "Folder Name"));
parametersProcessor.addSupportedParameter(parameter);
parameter = new ConsoleParameter("-localWorkers", "Number of threads used to compile the permutations in parallel.", false, true);
parameter.addParameterOption(new ConsoleParameterOption("numberOfWorkers", "Number of Workers"));
parametersProcessor.addSupportedParameter(parameter);
parameter = new ConsoleParameter("-logLevel", "Level of Logging", false, true);
parameter.addParameterOption(new ConsoleParameterOption("level", "Level"));
parametersProcessor.addSupportedParameter(parameter);
parametersProcessor.addSupportedParameter(new ConsoleParameter("-validateOnly", " Validate all source code, but do not compile.", false, true));
parametersProcessor.addSupportedParameter(new ConsoleParameter("-compileReport", "Create a compile report that tells the Story of Your Compile.", false, true));
parametersProcessor.addSupportedParameter(new ConsoleParameter("-draftCompile", "Disable compiler optimizations and run faster.", false, true));
parametersProcessor.addSupportedParameter(new ConsoleParameter("-strict", "Only succeed if no input files have errors.", false, true));
parametersProcessor.addSupportedParameter(new ConsoleParameter("-XenableClosureCompiler", "Enable JS size optimizations.", false, true));
parametersProcessor.addSupportedParameter(new ConsoleParameter("-XfragmentCount", "Enable automatic fragment merging.", false, false));
parametersProcessor.addSupportedParameter(new ConsoleParameter("-help", "Display the usage screen.", false, true));
parametersProcessor.addSupportedParameter(new ConsoleParameter("-h", "Display the usage screen.", false, true));
return parametersProcessor;
}