/* (c) Copyright 2008 Hewlett-Packard Development Company, LP All rights reserved. $Id$ */ package run.support; import java.util.*; public class Arguments { protected final Map> map = new HashMap>(); public Arguments( String defaultName, String [] argStrings ) { List current = new ArrayList(); map.put( defaultName, current ); for (String a: argStrings) { if (a.startsWith( "-")) { String keyString = a.substring( 1 ); int eqPos = keyString.indexOf( '=' ); if (eqPos < 0) current = listForKey( keyString ); else { String key = keyString.substring( 0, eqPos ); String value = keyString.substring( eqPos + 1 ); listForKey( key ).add( value ); } } else current.add( a ); } } protected List listForKey( String key ) { List result = map.get( key ); if (result == null) map.put( key, result = new ArrayList() ); return result; } public List valuesFor( String key ) { List values = map.get( key ); return values == null ? new ArrayList() : values; } public String valueFor( String key, String ifAbsent ) { List values = map.get( key ); return values == null || values.isEmpty() ? ifAbsent : values.get( 0 ); } }