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;
38 * @return 解析されたコマンドライン並び
40 static List<CmdLine> parse(String... args){
41 List<String> list = Arrays.asList(args);
48 * @param argList コマンドライン
49 * @return 解析されたコマンドライン並び
51 static List<CmdLine> parse(List<String> argList){
52 List<CmdLine> result = new LinkedList<>();
54 Iterator<String> it = argList.iterator();
55 while (it.hasNext()) {
56 String arg = it.next();
58 CmdLine info = new CmdLine();
61 info.opt = OptSwitch.parse(arg);
64 if (info.opt != null) {
65 exArgNum = info.opt.getExArgNum();
67 info.optArgs = new ArrayList<>(exArgNum + 1);
69 info.optArgs.add(arg);
71 for (int argCt = 0; argCt < exArgNum; argCt++) {
72 if ( ! it.hasNext()) {
75 String exarg = it.next();
76 info.optArgs.add(exarg);
88 * オプションを伴わない単純なコマンドライン引数の場合はnullを返す。
90 OptSwitch getOptSwitch() {
97 * @return オプションに付随する引数群。
99 * 単純なコマンドライン引数の場合は自身が1要素のみを占める。
101 List<String> getOptArgs() {