litesoft
@ 939
litesoft / trunk / Java / ScarPlus / src / com / esotericsoftware / scar / support / Arguments.java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 |
package com.esotericsoftware.scar.support; import org.litesoft.core.typeutils.Objects; import java.util.*; import com.esotericsoftware.scar.*; import com.esotericsoftware.utils.*; /** * Stores command line arguments as 'String' name/value pairs. Arguments containing an equals sign are considered a name/value pair. All * other arguments are stored as a name/value pair with a "" value. */ @SuppressWarnings({"UnusedDeclaration"}) public class Arguments { public static class NameValuePair { private String mName, mValue; public NameValuePair( String pName, String pValue ) { mName = pName; mValue = pValue; } public String getName() { return mName; } public String getValue() { return mValue; } } private final Map<String, String> mParameters = new LinkedHashMap<String, String>(); public Arguments() { } public Arguments( String[] pArgs ) { for ( String zArg : pArgs ) { if ( null != (zArg = Utils.noEmpty( zArg )) ) { int at = zArg.indexOf( '=' ); if ( at == -1 ) { set( zArg, "" ); } else { set( zArg.substring( 0, at ), zArg.substring( at + 1 ).trim() ); } } } } private void set( String pName, String pValue ) { mParameters.put( normalizeName( pName ), pValue ); } /** * Get (and remove if there) the 'Next' Name/Value. * <p/> * Returns null means no more. */ public NameValuePair getNext() { if ( mParameters.isEmpty() ) { return null; } String zName = mParameters.keySet().iterator().next(); return new NameValuePair( zName, get( zName ) ); } /** * Get (and remove if there) the value assocciated w/ pName. * <p/> * Returns the value of the argument with the specified Name, * or "" if the argument was specified without a value, * or null if it was not specified. */ public String get( String pName ) { return mParameters.remove( normalizeName( pName ) ); } /** * Get (and remove if there) the value assocciated w/ pName. * <p/> * Returns the value of the argument with the specified Name, * or "" if the argument was specified without a value, * or pDefaultValue if it was not specified. */ public String get( String pName, String pDefaultValue ) { String zValue = get( pName ); return (zValue != null) ? zValue : pDefaultValue; } public int count() { return mParameters.size(); } private String normalizeName( String pName ) { return Util.assertNotEmpty( "Name", pName ).toLowerCase(); } public String toString() { StringBuilder buffer = new StringBuilder( 100 ); for ( String param : mParameters.keySet() ) { if ( buffer.length() > 1 ) { buffer.append( ' ' ); } buffer.append( param ); String value = get( param ); if ( "".equals( value ) ) { buffer.append( '=' ); buffer.append( value ); } } return buffer.toString(); } } |
Commits for litesoft/trunk/Java/ScarPlus/src/com/esotericsoftware/scar/support/Arguments.java
Revision | Author | Commited | Message |
---|---|---|---|
939 Diff | GeorgeS | Mon 02 Jun, 2014 21:30:31 +0000 | Extracting commonfoundation |
422 Diff | GeorgeS | Sat 20 Aug, 2011 17:30:50 +0000 | |
291 Diff | GeorgeS | Wed 22 Jun, 2011 00:33:37 +0000 | |
290 Diff | GeorgeS | Tue 21 Jun, 2011 14:58:27 +0000 | |
289 Diff | GeorgeS | Tue 21 Jun, 2011 00:43:29 +0000 | |
287 | GeorgeS | Mon 20 Jun, 2011 06:24:24 +0000 |