📄 dbinfo.java
字号:
/*------------------------------------------------------------------------------Name: DbInfo.javaProject: org.xmlBlasterProject: xmlBlaster.orgCopyright: xmlBlaster.org, see xmlBlaster-LICENSE file------------------------------------------------------------------------------*/package org.xmlBlaster.contrib.db;import java.util.Map;import java.util.HashMap;import java.util.Set;import java.util.TreeSet;import java.util.logging.Logger;import org.xmlBlaster.contrib.I_Info;import org.xmlBlaster.contrib.InfoHelper;import org.xmlBlaster.util.qos.ClientProperty;/** * DbInfo This is the I_Info implementation making use of Properties. * Creates a simple implementation based on our ClientProperty maps. * This implementation uses the reference to the properties passed. If you want a snapshot of these properties, you * need to take a clone and pass the clone to the constructor. * Therefore this class can be seen as a decorator to the map passed * into the constructor. If you change a value with this class it will * update the clientPropertyMap. If entries in the map are found which * are not of the type ClientProperty, they are ignored. * * This class is thread safe. * * @author <a href="mailto:michele@laghi.eu">Michele Laghi</a> */public class DbInfo implements I_Info, DbInfoMBean { private static Logger log = Logger.getLogger(DbInfo.class.getName()); Map objects; private InfoHelper helper; private DbStorage storage; /** * @param clientPropertyMap Can be null */ public DbInfo(I_DbPool pool, String id, I_Info info) throws Exception { this.storage = new DbStorage(info, pool, id); this.helper = new InfoHelper(this); this.objects = new HashMap(); // performance impact. It should anyway be clean what is in the Db. // this.helper.replaceAllEntries(this, null); // to add this to JMX if (pool instanceof DbPool) { String jmxName = I_Info.JMX_PREFIX + "dbInfo"; info.putObject(jmxName, this); log.info("Added object '" + jmxName + "' to I_Info to be added as an MBean"); } } /** * * @param txt * @return */ public String getRaw(String key) { try { ClientProperty prop = this.storage.getProperty(key); if (prop == null) return null; return prop.getStringValue(); } catch (Exception ex) { log.warning("An exception occured when retrieving the entry '" + key + "': " + ex.getMessage()); return null; } } /** * * @param txt * @return */ protected String getPropAsString(String key) { try { ClientProperty prop = this.storage.getProperty(key); if (prop == null) return null; String ret = prop.getStringValue(); if (ret != null) { return this.helper.replace(ret); } return null; } catch (Exception ex) { log.warning("An exception occured when retrieving the entry '" + key + "': " + ex.getMessage()); return null; } } /** * @see org.xmlBlaster.contrib.I_Info#get(java.lang.String, java.lang.String) */ public synchronized String get(String key, String def) { if (def != null) def = this.helper.replace(def); if (key == null) return def; key = this.helper.replace(key); String ret = getPropAsString(key); if (ret != null) { return this.helper.replace(ret); } return def; } /** * @see org.xmlBlaster.contrib.I_Info#put(java.lang.String, java.lang.String) */ public synchronized void put(String key, String value) { if (key != null) key = this.helper.replace(key); if (value != null) value = this.helper.replace(value); try { if (value == null) this.storage.remove(key); else { ClientProperty prop = new ClientProperty(key, null, null, value); this.storage.put(prop); } } catch (Exception ex) { log.warning("An exception occured when putting the entry '" + key + "': " + ex.getMessage()); } } /** * @see org.xmlBlaster.contrib.I_Info#put(java.lang.String, java.lang.String) */ public synchronized void putRaw(String key, String value) { try { if (value == null) this.storage.remove(key); else { ClientProperty prop = new ClientProperty(key, null, null, value); this.storage.put(prop); } } catch (Exception ex) { log.warning("An exception occured when putting the raw the entry '" + key + "': " + ex.getMessage()); } } /** * @see org.xmlBlaster.contrib.I_Info#getLong(java.lang.String, long) */ public synchronized long getLong(String key, long def) { if (key == null) return def; String ret = getPropAsString(key); if (ret != null) { try { return Long.parseLong(ret); } catch (NumberFormatException ex) { ex.printStackTrace(); return def; } } return def; } /** * @see org.xmlBlaster.contrib.I_Info#getInt(java.lang.String, int) */ public synchronized int getInt(String key, int def) { if (key == null) return def; String ret = getPropAsString(key); if (ret != null) { try { return Integer.parseInt(ret); } catch (NumberFormatException ex) { ex.printStackTrace(); return def; } } return def; } /** * @see org.xmlBlaster.contrib.I_Info#getBoolean(java.lang.String, boolean) */ public synchronized boolean getBoolean(String key, boolean def) { if (key == null) return def; String ret = getPropAsString(key); if (ret != null) { try { Boolean bool = new Boolean(ret); return bool.booleanValue(); } catch (NumberFormatException ex) { ex.printStackTrace(); return def; } } return def; } /** * @see org.xmlBlaster.contrib.I_Info#getObject(java.lang.String) */ public synchronized Object getObject(String key) { return this.objects.get(key); } /** * @see org.xmlBlaster.contrib.I_Info#putObject(java.lang.String, Object) */ public synchronized Object putObject(String key, Object o) { if (o == null) return this.objects.remove(key); return this.objects.put(key, o); } /** * @see org.xmlBlaster.contrib.I_Info#getKeys() */ public synchronized Set getKeys() { try { return this.storage.getKeys(); } catch (Exception ex) { log.warning("An exception occured when retreiving the keys: " + ex.getMessage()); return new TreeSet(); } } /** * @see org.xmlBlaster.contrib.I_Info#getObjectKeys() */ public synchronized Set getObjectKeys() { return this.objects.keySet(); } private static String getAsString(Set set) { String[] ret = (String[])set.toArray(new String[set.size()]); StringBuffer buf = new StringBuffer(); for (int i=0; i < ret.length; i++) buf.append(ret[i]).append(" "); return buf.toString(); } public String getKeysAsString() { return getAsString(getKeys()); } public String getObjectKeysAsString() { return getAsString(getObjectKeys()); } }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -