4 * |
4 * |
5 * @author Ing. František Kučera (frantovo.cz) |
5 * @author Ing. František Kučera (frantovo.cz) |
6 */ |
6 */ |
7 public class CLIStarter { |
7 public class CLIStarter { |
8 |
8 |
|
9 public static final String DEFAULT_NAME_PREFIX = ":"; |
|
10 |
9 public static void main(String[] args) { |
11 public static void main(String[] args) { |
10 |
12 |
11 args = new String[]{"--sql", "SELECT * FROM tabulka;", "--db", "databáze_1"}; |
13 args = new String[]{"--sql", "SELECT * FROM tabulka;", "--db", "databáze_1"}; |
12 |
14 |
13 CLIOptions options = parseOptions(args); |
15 CLIOptions options = parseOptions(args); |
14 } |
16 } |
15 |
17 |
16 private static CLIOptions parseOptions(String[] args) { |
18 private static CLIOptions parseOptions(String[] args) { |
17 CLIOptions options = new CLIOptions(); |
19 CLIOptions options = new CLIOptions(); |
18 |
20 |
|
21 String typesString = null; |
|
22 String namePrefix = DEFAULT_NAME_PREFIX; |
|
23 |
|
24 |
19 for (int i = 0; i < args.length; i++) { |
25 for (int i = 0; i < args.length; i++) { |
20 String arg = args[i]; |
26 String arg = args[i]; |
|
27 switch (arg) { |
|
28 case Tokens.TYPES: |
|
29 typesString = args[++i]; |
|
30 break; |
|
31 case Tokens.NAME_PREFIX: |
|
32 namePrefix = args[++i]; |
|
33 break; |
|
34 } |
|
35 } |
21 |
36 |
|
37 |
|
38 for (int i = 0; i < args.length; i++) { |
|
39 String arg = args[i]; |
22 switch (arg) { |
40 switch (arg) { |
|
41 case Tokens.TYPES: |
|
42 case Tokens.NAME_PREFIX: |
|
43 i++; |
|
44 break; |
23 case Tokens.DB: |
45 case Tokens.DB: |
24 String db = args[++i]; |
46 options.setDatabaseName(args[++i]); |
25 System.out.println("DB: " + db); |
|
26 break; |
47 break; |
27 case Tokens.SQL: |
48 case Tokens.SQL: |
28 String sql = args[++i]; |
49 options.setSql(args[++i]); |
29 System.out.println("SQL: " + sql); |
50 options.setCommandType(CLIOptions.COMMAND_TYPE.QUERY); |
30 break; |
51 break; |
31 case Tokens.SQL_UPDATE: |
52 case Tokens.SQL_UPDATE: |
|
53 case Tokens.SQL_INSERT: |
|
54 options.setSql(args[++i]); |
|
55 options.setCommandType(CLIOptions.COMMAND_TYPE.UPDATE); |
32 break; |
56 break; |
33 case Tokens.BATCH: |
57 case Tokens.BATCH: |
|
58 options.setBatch(true); |
34 break; |
59 break; |
35 case Tokens.DATA: |
60 case Tokens.DATA: |
36 break; |
|
37 case Tokens.TYPES: |
|
38 break; |
61 break; |
39 } |
62 } |
40 } |
63 } |
41 |
64 |
42 return options; |
65 return options; |
46 public static class Tokens { |
69 public static class Tokens { |
47 |
70 |
48 public static final String DB = "--db"; |
71 public static final String DB = "--db"; |
49 public static final String SQL = "--sql"; |
72 public static final String SQL = "--sql"; |
50 public static final String SQL_UPDATE = "--sql-update"; |
73 public static final String SQL_UPDATE = "--sql-update"; |
|
74 public static final String SQL_INSERT = "--sql-insert"; |
51 public static final String BATCH = "--batch"; |
75 public static final String BATCH = "--batch"; |
52 public static final String DATA = "--data"; |
76 public static final String DATA = "--data"; |
|
77 public static final String NAME_PREFIX = "--name-prefix"; |
53 public static final String TYPES = "--types"; |
78 public static final String TYPES = "--types"; |
54 |
79 |
55 private Tokens() { |
80 private Tokens() { |
56 } |
81 } |
57 } |
82 } |