2 * command line option definition
4 * License : The MIT License
5 * Copyright(c) 2013 MikuToga Partners
8 package jp.sfjp.mikutoga.vmd2xml;
10 import java.util.Arrays;
11 import java.util.Collections;
12 import java.util.HashMap;
13 import java.util.List;
21 OPT_HELP (0, "-h", "-help", "-?"),
23 OPT_OUTFILE (1, "-o"),
25 OPT_NEWLINE (1, "-nl"),
26 OPT_GENOUT (1, "-genout"),
27 OPT_IFORM (1, "-iform"),
28 OPT_OFORM (1, "-oform"),
29 OPT_QUAT (0, "-quat"),
30 OPT_EYXZ (0, "-eyxz"),
33 private static final String HELP_CONSOLE =
34 "-h : put help message\n\n"
35 + "-i <file> : specify input file\n"
36 + "-o <file> : specify output file\n"
37 + "-f : force overwriting\n\n"
38 + "-nl <newline> : specify XML-newline character"
40 + "-genout <bool> : mark generator-name to XML"
42 + "-quat : Quaternion form rotation (default)\n"
43 + "-eyxz : Euler-YXZ form rotation\n\n"
44 + "-iform <format> : specify input format explicitly\n"
45 + "-oform <format> : specify output format explicitly\n\n"
46 + " bool : \"on\" or \"off\""
47 + " or \"true\" or \"false\""
48 + " or \"yes\" or \"no\"\n"
49 + " format : \"vmd\" or \"xml\" or"
50 + " \"xml110820\" or \"xml130609\"\n"
51 + " newline : \"lf\" or \"crlf\"\n"
54 private static final Map<String, OptSwitch> MAP_OPT;
57 Map<String, OptSwitch> map = new HashMap<>();
59 for(OptSwitch opt : values()){
60 for(String cmdarg : opt.cmdopts){
65 map = Collections.unmodifiableMap(map);
70 private final int exArgNum;
71 private final List<String> cmdopts;
77 * @param argnum 必要な引数の数
78 * @param cmdopts オプションスイッチパターン群
80 OptSwitch(int argnum, String... cmdopts) {
81 this.exArgNum = argnum;
84 optlist = Arrays.asList(cmdopts);
85 optlist = Collections.unmodifiableList(optlist);
86 this.cmdopts = optlist;
93 * コンソール提示用ヘルプ出力文字列を返す。
97 static String getConsoleHelp(){
104 * <p>一つのオプションが複数の表記に合致する場合がある。
107 * @return オプション種別。合致する物が見つからなければnull
109 static OptSwitch parse(String cmd){
110 OptSwitch result = MAP_OPT.get(cmd);
116 * 各オプションに後続する引数の数を返す。
118 * <p>引数をとらないオプションは0を返す。
123 return this.exArgNum;