public Map < String , String > getKeywordMap ( ) { if ( keywords == null ) { TreeMap < String , String > m = null ; if ( setToKeywordStart ( ) ) { // trim spaces and convert to lower case, both keywords and values. do { String key = getKeyword ( ) ; if ( key . length ( ) == 0 ) { break ; } char c = next ( ) ; if ( c != KEYWORD_ASSIGN ) { // throw new IllegalArgumentException("key '" + key + "' missing a value."); if ( c == DONE ) { break ; } else { continue ; } } String value = getValue ( ) ; if ( value . length ( ) == 0 ) { // throw new IllegalArgumentException("key '" + key + "' missing a value."); continue ; } if ( m == null ) { m = new TreeMap < String , String > ( getKeyComparator ( ) ) ; } else if ( m . containsKey ( key ) ) { // throw new IllegalArgumentException("key '" + key + "' already has a value."); continue ; } m . put ( key , value ) ; } while ( next ( ) == ITEM_SEPARATOR ) ; } keywords = m != null ? m : Collections . < String , String > emptyMap ( ) ; } return keywords ; }
Returns a map of the keywords and values or null if there are none .