From 755bb76c94953b62a08e9fecf523bc5c42ec79ac Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Wed, 26 Feb 2014 10:29:36 +0100 Subject: Properties extended as ObjectProperties, which can return any Object, and wrap int and boolean parsing. Gateway.getProperties() returns the new ObjectProperty instance. Old Gateway property methods still present but deprecated. Refs #149 --- .../java/com/c2kernel/utils/ObjectProperties.java | 156 +++++++++++++++++++++ 1 file changed, 156 insertions(+) create mode 100644 src/main/java/com/c2kernel/utils/ObjectProperties.java (limited to 'src/main/java/com/c2kernel/utils/ObjectProperties.java') diff --git a/src/main/java/com/c2kernel/utils/ObjectProperties.java b/src/main/java/com/c2kernel/utils/ObjectProperties.java new file mode 100644 index 0000000..79aee78 --- /dev/null +++ b/src/main/java/com/c2kernel/utils/ObjectProperties.java @@ -0,0 +1,156 @@ +package com.c2kernel.utils; + +import java.util.Enumeration; +import java.util.Properties; + +public class ObjectProperties extends Properties { + + public ObjectProperties() { + // TODO Auto-generated constructor stub + } + + public ObjectProperties(Properties defaults) { + super(defaults); + // TODO Auto-generated constructor stub + } + + public String getString(String propName) { + return super.getProperty(propName); + } + + public String getString(String propName, String defaultValue) { + return super.getProperty(propName, defaultValue); + } + + /** + * ogattaz proposal + * + * @param propName + * the name of the property + * @return the object value of the property. Returns null if the property + * doesn't exist or if the properties of the gateway is null + */ + public Object getObject(String propName) { + return getObject(propName, null); + } + + /** + * ogattaz proposal + * + * @param aPropertyName + * the name of the property + * @param defaultValue + * the default value. + * @return the object value of the property. Returns the default value if the property + * doesn't exist or if the properties of the gateway is null. + * @return + */ + public Object getObject(String propName, + Object defaultValue) { + + Object wValue = get(propName); + if (wValue == null) { + return defaultValue; + } + return wValue; + } + + /** + * ogattaz proposal + * + * @param propName + * the name of the paroperty + * @return the boolean value of the property. Returns false if the property + * doesn't exist or if the value is not a String or a Boolean + * instance + */ + public boolean getBoolean(String aPropertyName) { + return getBoolean(aPropertyName, Boolean.FALSE); + } + + /** + * ogattaz proposal + * + * @param propName + * the name of the parameter stored in the clc file + * @param defaultValue + * the default value + * @return the boolean value of the property. Returns the default value if + * the property doesn't exist or if the value is not a String or a + * Boolean instance + */ + public boolean getBoolean(String aPropertyName, + boolean defaultValue) { + + Object wValue = getObject(aPropertyName, new Boolean(defaultValue)); + if (wValue instanceof Boolean) { + return ((Boolean) wValue).booleanValue(); + } + if (wValue instanceof String) { + return Boolean.parseBoolean((String) wValue); + } + Logger.error("getBoolean(): unable to retrieve a int value for ["+aPropertyName+"]. Returning default value ["+defaultValue+"]. object found="+wValue); + + return defaultValue; + } + + /** + * ogattaz proposal + * + * @param propName + * the name of the property + * @return the int value of the property. Returns -1 if the property doesn't + * exist or if the value is not a String or an Integer instance + */ + public int getInt(String aPropertyName) { + return getInt(aPropertyName, -1); + } + + /** + * ogattaz proposal + * + * @param propName + * the name of the property + * @param defaultValue + * the default value + * @return the int value of the property. Returns the default vakue if the + * property doesn't exist or if the value is not a String or an + * Integer instance + */ + public int getInt(String aPropertyName, int defaultValue) { + + Object wValue = getObject(aPropertyName, new Integer(defaultValue)); + if (wValue instanceof Integer) { + return ((Integer) wValue).intValue(); + } + if (wValue instanceof String) { + try { + return Integer.parseInt((String) wValue); + } catch (NumberFormatException ex) { } + } + Logger.error("getInt(): unable to retrieve a int value for ["+aPropertyName+"]. Returning default value ["+defaultValue+"]. object found="+wValue); + return defaultValue; + } + + /** + * Allow setting of properties as Objects + * + * @param aPropertyName + * the name of the property + * @param aPropertyValue + */ + public void setProperty(String aPropertyName, Object aPropertyValue) { + put(aPropertyName, aPropertyValue); + } + + public void dumpProps(int logLevel) { + if (!Logger.doLog(logLevel)) return; + Logger.msg(logLevel, "Properties:"); + for (Enumeration e = propertyNames(); e.hasMoreElements();) { + String name = (String) e.nextElement(); + Logger.msg(" "+name+": "+getProperty(name)); + } + } + + +} -- cgit v1.2.3