3 import java.net.URLDecoder;
4 import java.util.Vector;
7 * Notes: this argParser does not distinguish between parameter switches,
8 * parameter values and argument text. If an argument happens to be identical to
9 * a parameter, it will be taken as such (even though it didn't have a '-'
12 * @author Andrew Waterhouse and JBP documented.
15 public class ArgsParser
17 Vector<String> vargs = null;
19 public ArgsParser(String[] args)
21 vargs = new Vector<String>();
22 for (int i = 0; i < args.length; i++)
24 String arg = args[i].trim();
25 if (arg.charAt(0) == '-')
27 arg = arg.substring(1);
29 vargs.addElement(arg);
34 * check for and remove first occurence of arg+parameter in arglist.
37 * @return return the argument following the given arg if arg was in list.
39 public String getValue(String arg)
41 return getValue(arg, false);
44 public String getValue(String arg, boolean utf8decode)
46 int index = vargs.indexOf(arg);
47 String dc = null, ret = null;
50 ret = vargs.elementAt(index + 1).toString();
51 vargs.removeElementAt(index);
52 vargs.removeElementAt(index);
53 if (utf8decode && ret != null)
57 dc = URLDecoder.decode(ret, "UTF-8");
61 // TODO: log failure to decode
69 * check for and remove first occurence of arg in arglist.
72 * @return true if arg was present in argslist.
74 public boolean contains(String arg)
76 if (vargs.contains(arg))
78 vargs.removeElement(arg);
87 public String nextValue()
89 return vargs.remove(0);