Drupal: vyhození zbytečností.
3 * see AUTHORS for the list of contributors
5 * This program is free software: you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation, either version 3 of the License, or
8 * (at your option) any later version.
10 * This program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
18 package org.sonews.config;
20 import java.util.logging.Level;
21 import org.sonews.util.Log;
22 import org.sonews.storage.StorageBackendException;
23 import org.sonews.storage.StorageManager;
24 import org.sonews.util.TimeoutMap;
27 * Provides access to the program wide configuration that is stored within
28 * the server's database.
29 * @author Christian Lins
32 class BackendConfig extends AbstractConfig {
34 private static BackendConfig instance = new BackendConfig();
36 public static BackendConfig getInstance() {
39 private final TimeoutMap<String, String> values = new TimeoutMap<String, String>();
41 private BackendConfig() {
46 * Returns the config value for the given key or the defaultValue if the
47 * key is not found in config.
53 public String get(String key, String defaultValue) {
55 String configValue = values.get(key);
56 if (configValue == null) {
57 if (StorageManager.current() == null) {
58 Log.get().warning("BackendConfig not available, using default.");
62 configValue = StorageManager.current().getConfigValue(key);
63 if (configValue == null) {
66 values.put(key, configValue);
72 } catch (StorageBackendException ex) {
73 Log.get().log(Level.SEVERE, "Storage backend problem", ex);
79 * Sets the config value which is identified by the given key.
83 public void set(String key, String value) {
84 values.put(key, value);
87 // Write values to database
88 StorageManager.current().setConfigValue(key, value);
89 } catch (StorageBackendException ex) {