4 * License : The MIT License
5 * Copyright(c) 2016 olyutorskii
8 package jp.sourceforge.jindolf.archiver;
10 import java.text.MessageFormat;
11 import java.util.Arrays;
12 import java.util.Collections;
13 import java.util.HashMap;
14 import java.util.Iterator;
15 import java.util.List;
21 public enum OptArg implements Iterable<String> {
24 OPT_HELP ("-h", "-help", "-?"),
30 OPT_OUTDIR ("-outdir"),
32 OPT_STDOUT ("-stdout"),
36 private static final Map<String, OptArg> MAP_OPT;
37 private static final String FMT_HELP =
39 + "{0} 人狼BBS アーカイブ作成ツール\n\n"
40 + "-h, -help, -?\n\tヘルプメッセージ\n"
43 + "-outdir 出力ディレクトリ\n"
44 + "-stdout\n\t標準出力へ出力\n\n"
45 + "※ -outdir と -stdout は排他指定\n\n"
49 private final List<String> argList;
53 Map<String, OptArg> map = new HashMap<>();
55 for(OptArg optArg : values()){
56 for(String argtxt : optArg){
57 map.put(argtxt, optArg);
61 MAP_OPT = Collections.unmodifiableMap(map);
67 * @param opts オプション文字列。
69 private OptArg(String ... opts){
71 list = Arrays.asList(opts);
72 list = Collections.unmodifiableList(list);
83 * @return オプション指定子。見つからなければnull
85 public static OptArg parseOptArg(String txt){
86 OptArg result = MAP_OPT.get(txt);
92 * @param generator アプリ名
95 public static String getHelpMessage(String generator){
97 if(generator != null) appName = generator;
98 String catalog = LandUtils.getLandIdCatalog();
100 String result = MessageFormat.format(FMT_HELP, appName, catalog);
108 * @return オプション文字列のリスト
110 public List<String> getArgList(){
117 * @return {@inheritDoc}
120 public Iterator<String> iterator(){
121 return this.argList.iterator();