1 package net.jaekl.squelch.db;
3 import java.util.Locale;
7 private Class<?> m_type;
8 private Object m_value;
10 public Setting(String name, Class<?> type, Object defaultValue)
14 m_value = defaultValue;
17 public String getName() { return m_name; }
19 public boolean getBoolean()
21 assert(Boolean.class == m_type);
23 if (m_value instanceof Boolean) {
24 return ((Boolean)m_value).booleanValue();
29 public void set(Object value)
31 if (Boolean.class == m_type) {
32 if (value instanceof String) {
33 m_value = parseBoolean((String)value);
35 else if (value instanceof Boolean) {
40 throw new IllegalArgumentException("This type not yet supported.");
44 private boolean parseBoolean(String value)
50 String setting = value.trim().toLowerCase(Locale.CANADA);
52 if (setting.equals("yes") || setting.equals("true") || setting.equals("on") || setting.equals("1")) {
55 if (setting.equals("no") || setting.equals("false") || setting.equals("off") || setting.equals("0")) {
59 throw new IllegalArgumentException("UnrecognizedBooleanValue: \"" + value + "\"");