source: java/main/src/main/java/com/framsticks/util/ProgramArguments.java @ 77

Last change on this file since 77 was 77, checked in by psniegowski, 11 years ago

Add new java codebase.

File size: 1.4 KB
Line 
1package com.framsticks.util;
2
3import java.util.ArrayList;
4import java.util.HashMap;
5import java.util.List;
6import java.util.Map;
7
8/**
9 * @author Piotr Sniegowski
10 */
11public class ProgramArguments {
12
13        private final Map<String, List<String>> arguments = new HashMap<String, List<String>>();
14
15        public ProgramArguments(String[] args) {
16                int a = 0;
17                while (a < args.length) {
18                        if (args[a].startsWith("--")) {
19                                String argumentName = args[a].substring(2);
20
21                                String argumentValue;
22                                if (a + 1 < args.length && (!args[a + 1].startsWith("--"))) {
23                                        argumentValue = args[a + 1];
24                                        a += 2;
25                                } else {
26                                        argumentValue = null;
27                                        a += 1;
28                                }
29
30                                List<String> argumentValues;
31                                if (arguments.containsKey(argumentName)) {
32                                        argumentValues = arguments.get(argumentName);
33                                } else {
34                                        argumentValues = new ArrayList<String>();
35                                        arguments.put(argumentName, argumentValues);
36                                }
37                                argumentValues.add(argumentValue);
38                        }
39                }
40
41        }
42
43        public void forEach(String argument, UnaryFunctor<Boolean, String> functor) {
44                if (!arguments.containsKey(argument)) {
45                        return;
46                }
47                for (String v : arguments.get(argument)) {
48                        if (!functor.call(v)) {
49                                break;
50                        }
51                }
52        }
53
54        public String getSingle(String argument, String defValue) {
55                if (!arguments.containsKey(argument)) {
56                        return defValue;
57                }
58                List<String> values = arguments.get(argument);
59                if (values.size() != 1) {
60                        return defValue;
61                }
62                return values.get(0);
63        }
64
65}
Note: See TracBrowser for help on using the repository browser.