package com.github.ggrandes.kvstore; import java.util.HashMap; import org.apache.log4j.Logger; public class Options { private static final Logger log = Logger.getLogger(Options.class); private final HashMap<String, String> opts = new HashMap<String, String>(); // // String public Options set(final String key, final String value) { opts.put(key, value); return this; } public String getString(final String key) { return getString(key, null); } public String getString(final String key, final String defaultValue) { final String value = opts.get(key); if ((value != null) && !value.isEmpty()) { return value; } return defaultValue; } // // Integer public Options set(final String key, final int value) { opts.put(key, String.valueOf(value)); return this; } public int getInt(final String key) { return getInt(key, Integer.MIN_VALUE); } public int getInt(final String key, final int defaultValue) { try { final String value = opts.get(key); if (value != null) { return Integer.parseInt(value); } } catch (NumberFormatException e) { log.error("NumberFormatException in getInt("+key+")", e); } return defaultValue; } // // Boolean public Options set(final String key, final boolean value) { opts.put(key, String.valueOf(value)); return this; } public boolean getBoolean(final String key) { return getBoolean(key, false); } public boolean getBoolean(final String key, final boolean defaultValue) { final String value = opts.get(key); if (value != null) { return Boolean.parseBoolean(value); } return defaultValue; } // // Global public boolean contains(final String key) { return opts.containsKey(key); } public Options remove(final String key) { opts.remove(key); return this; } public String toString() { return opts.toString(); } // }