4 * License : The MIT License
5 * Copyright(c) 2013 MikuToga Partners
8 package jp.sfjp.mikutoga.pmd2xml;
10 import java.util.ArrayList;
11 import java.util.Arrays;
12 import java.util.Iterator;
13 import java.util.LinkedList;
14 import java.util.List;
17 * コマンドラインの1オプションとその引数群に相当。
21 private OptSwitch opt;
22 private List<String> optArgs;
37 * @return 解析されたコマンドライン並び
39 static List<CmdLine> parse(String... args){
40 List<String> list = Arrays.asList(args);
46 * @param argList コマンドライン
47 * @return 解析されたコマンドライン並び
49 static List<CmdLine> parse(List<String> argList){
50 List<CmdLine> result = new LinkedList<CmdLine>();
52 Iterator<String> it = argList.iterator();
53 while (it.hasNext()) {
54 String arg = it.next();
56 CmdLine info = new CmdLine();
59 info.opt = OptSwitch.parse(arg);
62 if (info.opt != null) {
63 exArgNum = info.opt.getExArgNum();
65 info.optArgs = new ArrayList<String>(exArgNum + 1);
67 info.optArgs.add(arg);
69 for (int argCt = 0; argCt < exArgNum; argCt++) {
70 if ( ! it.hasNext()) {
73 String exarg = it.next();
74 info.optArgs.add(exarg);
85 * オプションを伴わない単純なコマンドライン引数の場合はnullを返す。
87 OptSwitch getOptSwitch() {
93 * @return オプションに付随する引数群。
95 * 単純なコマンドライン引数の場合は自身が1要素のみを占める。
97 List<String> getOptArgs() {