diff -r 1090e2141798 -r 2fdc9cc89502 org/sonews/daemon/Config.java --- a/org/sonews/daemon/Config.java Wed Jul 01 10:48:22 2009 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,149 +0,0 @@ -/* - * SONEWS News Server - * see AUTHORS for the list of contributors - * - * This program is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program. If not, see . - */ - -package org.sonews.daemon; - -import org.sonews.util.Log; -import java.sql.SQLException; -import org.sonews.daemon.storage.Database; -import org.sonews.util.AbstractConfig; -import org.sonews.util.TimeoutMap; - -/** - * Provides access to the program wide configuration that is stored within - * the server's database. - * @author Christian Lins - * @since sonews/0.5.0 - */ -public final class Config extends AbstractConfig -{ - - /** Config key constant. Value is the maximum article size in kilobytes. */ - public static final String ARTICLE_MAXSIZE = "sonews.article.maxsize"; - - /** Config key constant. Value: Amount of news that are feeded per run. */ - public static final String FEED_NEWSPERRUN = "sonews.feed.newsperrun"; - public static final String FEED_PULLINTERVAL = "sonews.feed.pullinterval"; - public static final String HOSTNAME = "sonews.hostname"; - public static final String PORT = "sonews.port"; - public static final String TIMEOUT = "sonews.timeout"; - public static final String MLPOLL_DELETEUNKNOWN = "sonews.mlpoll.deleteunknown"; - public static final String MLPOLL_HOST = "sonews.mlpoll.host"; - public static final String MLPOLL_PASSWORD = "sonews.mlpoll.password"; - public static final String MLPOLL_USER = "sonews.mlpoll.user"; - public static final String MLSEND_ADDRESS = "sonews.mlsend.address"; - public static final String MLSEND_RW_FROM = "sonews.mlsend.rewrite.from"; - public static final String MLSEND_RW_SENDER = "sonews.mlsend.rewrite.sender"; - public static final String MLSEND_HOST = "sonews.mlsend.host"; - public static final String MLSEND_PASSWORD = "sonews.mlsend.password"; - public static final String MLSEND_PORT = "sonews.mlsend.port"; - public static final String MLSEND_USER = "sonews.mlsend.user"; - - public static final String[] AVAILABLE_KEYS = { - Config.ARTICLE_MAXSIZE, - Config.FEED_NEWSPERRUN, - Config.FEED_PULLINTERVAL, - Config.HOSTNAME, - Config.MLPOLL_DELETEUNKNOWN, - Config.MLPOLL_HOST, - Config.MLPOLL_PASSWORD, - Config.MLPOLL_USER, - Config.MLSEND_ADDRESS, - Config.MLSEND_HOST, - Config.MLSEND_PASSWORD, - Config.MLSEND_PORT, - Config.MLSEND_RW_FROM, - Config.MLSEND_RW_SENDER, - Config.MLSEND_USER, - Config.PORT, - Config.TIMEOUT - }; - - private static Config instance = new Config(); - - public static Config getInstance() - { - return instance; - } - - private final TimeoutMap values - = new TimeoutMap(); - - private Config() - { - super(); - } - - /** - * Returns the config value for the given key or the defaultValue if the - * key is not found in config. - * @param key - * @param defaultValue - * @return - */ - public String get(String key, String defaultValue) - { - try - { - String configValue = values.get(key); - if(configValue == null) - { - configValue = Database.getInstance().getConfigValue(key); - if(configValue == null) - { - return defaultValue; - } - else - { - values.put(key, configValue); - return configValue; - } - } - else - { - return configValue; - } - } - catch(SQLException ex) - { - Log.msg(ex.getMessage(), false); - return defaultValue; - } - } - - /** - * Sets the config value which is identified by the given key. - * @param key - * @param value - */ - public void set(String key, String value) - { - values.put(key, value); - - try - { - // Write values to database - Database.getInstance().setConfigValue(key, value); - } - catch(SQLException ex) - { - ex.printStackTrace(); - } - } - -}