1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27 package org.ximtec.igesture.tool;
28
29 import java.io.File;
30 import java.util.logging.Level;
31 import java.util.logging.Logger;
32
33 import javax.xml.transform.TransformerConfigurationException;
34 import javax.xml.transform.TransformerException;
35 import javax.xml.transform.TransformerFactoryConfigurationError;
36
37 import org.apache.commons.cli.CommandLine;
38 import org.apache.commons.cli.CommandLineParser;
39 import org.apache.commons.cli.GnuParser;
40 import org.apache.commons.cli.HelpFormatter;
41 import org.apache.commons.cli.Option;
42 import org.apache.commons.cli.OptionBuilder;
43 import org.apache.commons.cli.Options;
44 import org.apache.commons.cli.ParseException;
45 import org.sigtec.util.Constant;
46 import org.sigtec.util.FileHandler;
47 import org.ximtec.igesture.batch.BatchProcess;
48 import org.ximtec.igesture.batch.BatchProcessContainer;
49 import org.ximtec.igesture.batch.BatchResultSet;
50 import org.ximtec.igesture.util.XMLTool;
51
52
53
54
55
56
57
58
59
60 public class BatchMain {
61
62 private static final Logger LOGGER = Logger.getLogger(BatchMain.class
63 .getName());
64
65 private static final String FILE = "file";
66
67 private static final String HTML = "html";
68
69 private static final String XSL = "xsl";
70
71 private static final String XML = "xml";
72
73 private static final String TESTSET = "testset";
74
75 private static final String GESTURESET = "gestureset";
76
77 private static final String CONFIG = "config";
78
79 private static final String HELP = "help";
80
81
82
83
84
85
86
87 public static void main(String args[]) {
88 final Options options = new Options();
89 options.addOption(createOption(HELP, FILE, "Print this message"));
90 options.addOption(createOption(CONFIG, FILE, "XML configuration file"));
91 options.addOption(createOption(GESTURESET, FILE, "XML gesture set file"));
92 options.addOption(createOption(TESTSET, FILE, "XML test set file"));
93 options.addOption(createOption(XML, FILE, "XML output file"));
94 options.addOption(createOption(XSL, FILE, "XSLT file"));
95 options.addOption(createOption(HTML, FILE, "HTML output file"));
96 final CommandLineParser parser = new GnuParser();
97 CommandLine line = null;
98
99 try {
100 line = parser.parse(options, args);
101 if (line.getOptions().length == 0 || line.hasOption(HELP)) {
102 final HelpFormatter formatter = new HelpFormatter();
103 formatter.printHelp("iGesture - Batch Processing", options);
104 }
105 else if ((line.hasOption(CONFIG) && line.hasOption(GESTURESET) && line
106 .hasOption(TESTSET))) {
107 BatchProcessContainer container = XMLTool.importBatchProcessContainer(new File(line
108 .getOptionValue(CONFIG)));
109
110 final BatchProcess batchProcess = new BatchProcess(container);
111 batchProcess.addGestureSet(XMLTool.importGestureSet(new File(line
112 .getOptionValue(GESTURESET))));
113 batchProcess.setTestSet(XMLTool.importTestSet(
114 new File(line.getOptionValue(TESTSET))));
115 final BatchResultSet resultSet = batchProcess.run();
116 final String xmlDocument = XMLTool.exportBatchResultSet(resultSet);
117
118 if (line.hasOption(XML)) {
119 org.sigtec.util.FileHandler.writeFile(line.getOptionValue(XML),
120 xmlDocument);
121 }
122
123 if (line.hasOption(XSL) && line.hasOption(HTML)) {
124 String htmlPage = Constant.EMPTY_STRING;
125
126 try {
127 htmlPage = XMLTool.transform(xmlDocument, line
128 .getOptionValue(XSL));
129 }
130 catch (final TransformerConfigurationException e) {
131 LOGGER.log(Level.SEVERE, Constant.EMPTY_STRING, e);
132 }
133 catch (final TransformerException e) {
134 LOGGER.log(Level.SEVERE, Constant.EMPTY_STRING, e);
135 }
136 catch (final TransformerFactoryConfigurationError e) {
137 LOGGER.log(Level.SEVERE, Constant.EMPTY_STRING, e);
138 }
139
140 FileHandler.writeFile(line.getOptionValue(HTML), htmlPage);
141 }
142
143 }
144 }
145 catch (final ParseException e) {
146 LOGGER.log(Level.SEVERE, Constant.EMPTY_STRING, e);
147 }
148
149
150 }
151
152
153 @SuppressWarnings("static-access")
154 private static Option createOption(String name, String argument,
155 String description) {
156 return OptionBuilder.withArgName(argument).hasArg().withDescription(
157 description).create(name);
158 }
159
160 }