Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.Map;
- import java.util.List;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.InputMismatchException;
- public class ArgParser{
- public static void main(String[] args) {
- Map<String, List<String>> parsedArgs = ParseArgs(args);
- Map<String, Integer> rules = new HashMap<String, Integer>();
- rules.put("filmes", 3);
- rules.put("episodios", 2);
- rules.put("generos", 1);
- ValidateArgs(parsedArgs, rules);
- for(Map.Entry<String, List<String>> arg: parsedArgs.entrySet()) {
- System.out.println(arg.getKey());
- for(String subArg: arg.getValue())
- System.out.println("\t" + subArg);
- }
- }
- public static Map<String, List<String>> ParseArgs(String[] args) {
- Map<String, List<String>> result = new HashMap<String, List<String>>();
- List<String> subArgs = null;
- for(String arg: args) {
- if(arg.startsWith("-")) {
- subArgs = new ArrayList<String>();
- result.put(arg.substring(1), subArgs);
- }
- else {
- if(subArgs != null)
- subArgs.add(arg);
- else
- throw new IllegalArgumentException("Invalid argument");
- }
- }
- return result;
- }
- public static void ValidateArgs(Map<String, List<String>> args, Map<String, Integer> rules) {
- for(Map.Entry<String, Integer> rule: rules.entrySet()) {
- List<String> subArgs = args.get(rule.getKey());
- if(subArgs == null || subArgs.size() != rule.getValue())
- throw new InputMismatchException("Expected subargument count " + rule.getValue());
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment