Class MapParser<VALUETYPE>

java.lang.Object
com.yahoo.text.SimpleMapParser
com.yahoo.text.MapParser<VALUETYPE>

public abstract class MapParser<VALUETYPE> extends SimpleMapParser

Superclasses of parsers of a map represented textually as {key1:value1,"anystringkey":value2,'anystringkey2':value3 ...}. This parser must be extended to override the way values are parsed and constructed.

Example: To create a Double map parser:

 public static final class DoubleMapParser extends MapParser<Double> {

     @Override
     protected Double parseValue(String value) {
         return Double.parseDouble(value);
     }

 }
 

Map parsers are NOT multithread safe, but are cheap to construct.

Author:
bratseth
  • Constructor Details

    • MapParser

      public MapParser()
  • Method Details

    • parseToMap

      public Map<String,VALUETYPE> parseToMap(String s)
      Convenience method doing return parse(s,new HashMap<String,VALUETYPE>())
    • parse

      public Map<String,VALUETYPE> parse(String string, Map<String,VALUETYPE> map)
      Parses a map on the form {key1:value1,key2:value2 ...}
      Parameters:
      string - the textual representation of the map
      map - the map to which the values will be added
      Returns:
      the input map instance for convenience
    • handleKeyValue

      protected void handleKeyValue(String key, String value)
      Specified by:
      handleKeyValue in class SimpleMapParser
    • parseValue

      protected abstract VALUETYPE parseValue(String value)