package edu.berkeley.nlp.util; import java.util.HashMap; import java.util.Map; /** * Utilities for managing command line flags and arguments. * * @author Dan Klein */ public class CommandLineUtils { /** * Simple method which turns an array of command line arguments into a map, * where each token starting with a '-' is a key and the following non '-' * initial token, if there is one, is the value. For example, '-size 5 * -verbose' will produce keys (-size,5) and (-verbose,null). */ public static Map<String, String> simpleCommandLineParser(String[] args) { Map<String, String> map = new HashMap<String, String>(); for (int i = 0; i <= args.length; i++) { String key = (i > 0 ? args[i - 1] : null); String value = (i < args.length ? args[i] : null);//.toLowerCase(); if (key == null || key.startsWith("-")) { if (value != null && value.startsWith("-")) value = null; if (key != null || value != null) map.put(key, value); } } return map; } /** * Simple method to look up a key in an argument map. Returns the * defaultValue if the argument is not specified in the map. */ public static String getValueOrUseDefault(Map<String, String> args, String key, String defaultValue) { if (args.containsKey(key)) return args.get(key); return defaultValue; } }