package ru.taximaxim.dbreplicator2;

import java.io.OutputStream;
import java.io.PrintWriter;

import org.apache.commons.cli.CommandLine;
import org.apache.commons.cli.HelpFormatter;
import org.apache.commons.cli.Option;
import org.apache.commons.cli.Options;
import org.apache.commons.cli.ParseException;
import org.apache.log4j.Logger;

public class ProcessingCli extends CommonsCli{
	
	public static final Logger LOG = Logger.getLogger(ProcessingCli.class);

	/**
	 * Вывод помошника
	 * 
	 * @param options
	 * @param printedRowWidth
	 * @param header
	 * @param footer
	 * @param spacesBeforeOption
	 * @param spacesBeforeOptionDescription
	 * @param displayUsage
	 * @param out
	 */
	private static void printHelp(final Options options,
			final int printedRowWidth, final String header,
			final String footer, final int spacesBeforeOption,
			final int spacesBeforeOptionDescription,
			final boolean displayUsage, final OutputStream out) {
		final String commandLineSyntax = "java dbreplicator2.jar";
		final PrintWriter writer = new PrintWriter(out);
		final HelpFormatter helpFormatter = new HelpFormatter();

		helpFormatter.printHelp(writer, printedRowWidth, commandLineSyntax,
				header, options, spacesBeforeOption,
				spacesBeforeOptionDescription, footer, displayUsage);
		writer.flush();
	}	
	
	/**
	 * Обработка
	 * 
	 * @param args
	 *            - аргументы
	 * @throws ParseException
	 */
	public static void initialization(String[] args) {
		if (args.length != 0) {
			CommonsCli.setOption("h", "help", true, "Print help for this application", 0,
					false, null);
			CommonsCli.setOption("t", "test", true, "The test test test", 1, false, "file");

			CommonsCli.createOptionGroup(new Option("a", true, "A option"));
			CommonsCli.addOptionGroup(new Option("b", true, "B option"));

			//выполение
			CommonsCli.parserCommandLine(args);
		}
	}

	/**
	 * Обработка команд
	 * 
	 * @param commandLine
	 */
	protected static void processingCmd(CommandLine commandLine) {

		boolean error = true;
		if (commandLine.hasOption("t")) {
			String[] arguments = commandLine.getOptionValues("t");
			System.out.println("Name of the test: " + arguments[0]);
			error = false;
		}

		if (commandLine.hasOption("h")) {
			printHelp(CommonsCli.getOptions(), // опции по которым составляем help
					80, // ширина строки вывода
					"Options:", // строка предшествующая выводу
					"-- HELP --", // строка следующая за выводом
					3, // число пробелов перед выводом опции
					5, // число пробелов перед выводом опцисания опции
					true, // выводить ли в строке usage список команд
					System.out // куда производить вывод
			);
			error = false;
		}
		
		if (error) {
			LOG.error("Неизвестная команда, пожалуйста воспользуетесь командой [-h] или [--help]");
		}
	}
}

@@ -257,54 +257,8 @@
 ns;%0A
-import org.apache.commons.cli.ParseException;%0A
 impo
@@ -438,205 +438,8 @@
 %D0%B8%D0%BA%D0%B0%0A
-%09 * %0A%09 * @param options%0A%09 * @param printedRowWidth%0A%09 * @param header%0A%09 * @param footer%0A%09 * @param spacesBeforeOption%0A%09 * @param spacesBeforeOptionDescription%0A%09 * @param displayUsage%0A%09 * @param out%0A
 %09 */
@@ -1103,16 +1103,38 @@
 ram args
+ %3Ccode%3EString%5B%5D%3C/code%3E
 %0A%09 *    
@@ -1156,35 +1156,25 @@
 %D0%B5%D0%BD%D1%82%D1%8B
-%0A%09 * @throws ParseException
+ %D0%BA%D0%BE%D0%BC%D0%B0%D0%BD%D0%B4%D0%BD%D0%BE%D0%B9 %D1%81%D1%82%D1%80%D0%BE%D0%BA%D0%B8
 %0A%09 *
@@ -1252,31 +1252,34 @@
  != 0) %7B%0A%09%09%09
-Commons
+Processing
 Cli.setOptio
@@ -1355,31 +1355,34 @@
 , null);%0A%09%09%09
-Commons
+Processing
 Cli.setOptio
@@ -1443,31 +1443,34 @@
 file%22);%0A%0A%09%09%09
-Commons
+Processing
 Cli.createOp
@@ -1514,31 +1514,34 @@
 tion%22));%0A%09%09%09
-Commons
+Processing
 Cli.addOptio
@@ -1602,23 +1602,26 @@
 %D0%B5%D0%BD%D0%B8%D0%B5%0A%09%09%09
-Commons
+Processing
 Cli.pars
@@ -2023,23 +2023,26 @@
 intHelp(
-Commons
+Processing
 Cli.getO

edit comment