1   package com.simpligility.maven.plugins.android;
2   
3   import com.google.common.base.Splitter;
4   import com.google.common.collect.Lists;
5   
6   import java.util.AbstractMap;
7   import java.util.Collections;
8   import java.util.HashMap;
9   import java.util.List;
10  import java.util.Map;
11  
12  
13  
14  
15  
16  
17  
18  
19  
20  
21  
22  
23  
24  
25  
26  
27  public class InstrumentationArgumentParser
28  {
29      private static final String SEPARATOR = " ";
30  
31      
32  
33  
34  
35  
36  
37  
38      public static Map<String, String> parse( final List<String> flatArgs )
39      {
40          if ( flatArgs == null )
41          {
42              return Collections.EMPTY_MAP;
43          }
44  
45          final Map<String, String> mappedArgs = new HashMap<String, String>();
46  
47          for ( final String flatArg : flatArgs )
48          {
49              final AbstractMap.SimpleEntry<String, String> keyValuePair = parseKeyValuePair( flatArg );
50              mappedArgs.put( keyValuePair.getKey(), keyValuePair.getValue() );
51          }
52  
53          return mappedArgs;
54      }
55  
56      private static AbstractMap.SimpleEntry<String, String> parseKeyValuePair( final String arg )
57      {
58          final List<String> keyValueSplit = Lists.newArrayList( Splitter.on( SEPARATOR ).limit( 2 ).split( arg ) );
59  
60          if ( keyValueSplit.size() == 1 )
61          {
62              throw new IllegalArgumentException( "Could not separate \"" + arg + "\" by a whitespace into two parts" );
63          }
64  
65          return new AbstractMap.SimpleEntry<String, String>( keyValueSplit.get( 0 ), keyValueSplit.get( 1 ) );
66      }
67  }