/*
 * Copyright 2004-2019 H2 Group. Multiple-Licensed under the MPL 2.0,
 * and the EPL 1.0 (http://h2database.com/html/license.html).
 * Initial Developer: H2 Group
 */
package org.h2.engine;

import java.util.HashMap;

import org.h2.api.ErrorCode;
import org.h2.message.DbException;
import org.h2.util.Utils;

The base class for settings.
/** * The base class for settings. */
public class SettingsBase { private final HashMap<String, String> settings; protected SettingsBase(HashMap<String, String> s) { this.settings = s; }
Get the setting for the given key.
Params:
  • key – the key
  • defaultValue – the default value
Returns:the setting
/** * Get the setting for the given key. * * @param key the key * @param defaultValue the default value * @return the setting */
protected boolean get(String key, boolean defaultValue) { String s = get(key, Boolean.toString(defaultValue)); try { return Utils.parseBoolean(s, defaultValue, true); } catch (IllegalArgumentException e) { throw DbException.get(ErrorCode.DATA_CONVERSION_ERROR_1, e, "key:" + key + " value:" + s); } }
Get the setting for the given key.
Params:
  • key – the key
  • defaultValue – the default value
Returns:the setting
/** * Get the setting for the given key. * * @param key the key * @param defaultValue the default value * @return the setting */
protected int get(String key, int defaultValue) { String s = get(key, Integer.toString(defaultValue)); try { return Integer.decode(s); } catch (NumberFormatException e) { throw DbException.get(ErrorCode.DATA_CONVERSION_ERROR_1, e, "key:" + key + " value:" + s); } }
Get the setting for the given key.
Params:
  • key – the key
  • defaultValue – the default value
Returns:the setting
/** * Get the setting for the given key. * * @param key the key * @param defaultValue the default value * @return the setting */
protected String get(String key, String defaultValue) { String v = settings.get(key); if (v != null) { return v; } StringBuilder buff = new StringBuilder("h2."); boolean nextUpper = false; for (char c : key.toCharArray()) { if (c == '_') { nextUpper = true; } else { // Character.toUpperCase / toLowerCase ignores the locale buff.append(nextUpper ? Character.toUpperCase(c) : Character.toLowerCase(c)); nextUpper = false; } } String sysProperty = buff.toString(); v = Utils.getProperty(sysProperty, defaultValue); settings.put(key, v); return v; }
Check if the settings contains the given key.
Params:
  • k – the key
Returns:true if they do
/** * Check if the settings contains the given key. * * @param k the key * @return true if they do */
protected boolean containsKey(String k) { return settings.containsKey(k); }
Get all settings.
Returns:the settings
/** * Get all settings. * * @return the settings */
public HashMap<String, String> getSettings() { return settings; } }