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 }