package peergos.shared.util; import java.util.*; public class Args { private final Map<String, String> params = new HashMap<>(); public static Args parse(String[] args) { Args a = new Args(); for (int i=0; i<args.length; i++) { String argName = args[i]; if (argName.startsWith("-")) argName = argName.substring(1); if ((i == args.length-1) || args[i+1].startsWith("-")) a.params.put(argName, "true"); else a.params.put(argName, args[++i]); } return a; } public String getArg(String param, String def) { if (!params.containsKey(param)) return def; return params.get(param); } public String getArg(String param) { if (!params.containsKey(param)) throw new IllegalStateException("No parameter: "+param); return params.get(param); } public String setArg(String param, String value) { return params.put(param, value); } public String setParameter(String param) { return params.put(param, "true"); } public String removeParameter(String param) { return params.remove(param); } public String removeArg(String param) { return params.remove(param); } public boolean hasArg(String arg) { return params.containsKey(arg); } public boolean getBoolean(String param, boolean def) { if (!params.containsKey(param)) return def; return "true".equals(params.get(param)); } public int getInt(String param, int def) { if (!params.containsKey(param)) return def; return Integer.parseInt(params.get(param)); } public int getInt(String param) { if (!params.containsKey(param)) throw new IllegalStateException("No parameter: "+param); return Integer.parseInt(params.get(param)); } public long getLong(String param) { if (!params.containsKey(param)) throw new IllegalStateException("No parameter: "+param); return Long.parseLong(params.get(param)); } public double getDouble(String param) { if (!params.containsKey(param)) throw new IllegalStateException("No parameter: "+param); return Double.parseDouble(params.get(param)); } public String getFirstArg(String[] paramNames, String def) { for (int i=0; i<paramNames.length; i++) { String result = getArg(paramNames[i], null); if (result != null) return result; } return def; } }