You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by sa...@apache.org on 2011/02/21 20:01:37 UTC
svn commit: r1073113 -
/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilProperties.java
Author: sascharodekamp
Date: Mon Feb 21 19:01:36 2011
New Revision: 1073113
URL: http://svn.apache.org/viewvc?rev=1073113&view=rev
Log:
Feature - Improve UtilProperties.java with a new Method getPropertyNumber which returns an Object of the Number or a default Object - (https://issues.apache.org/jira/browse/OFBIZ-3418) - I submitted a less modified patch from Mirko Vogelsmeier. The patch was outdated but doesn't matter I merged by hand and removed the tabs. Thanks Mirko for the improvement. And thanks Adrian for the first review.
Orig. Msg.:
Improvement of UtilProperties.java with a new method which returns the Number as an Object of the specified property name from the specified resource/properties file.
If the specified property name or properties file is not found, the defaultObject is returned.
i did update my method "getPropertyNumber" a bit and
as requested i added "getPropertyAsInteger / asLong / AsFloat / AsDouble / AsBigInteger / AsBigDecimal".
In addition i added a "getPropertyAsBoolean".
Modified:
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilProperties.java
Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilProperties.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilProperties.java?rev=1073113&r1=1073112&r2=1073113&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilProperties.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/util/UtilProperties.java Mon Feb 21 19:01:36 2011
@@ -24,6 +24,8 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.Serializable;
+import java.math.BigDecimal;
+import java.math.BigInteger;
import java.net.URL;
import java.text.MessageFormat;
import java.util.Enumeration;
@@ -136,6 +138,130 @@ public class UtilProperties implements S
return getPropertyNumber(resource, name, 0.00000);
}
+ /**
+ * Returns the Number as a Number-Object of the specified property name from the specified resource/properties file.
+ * If the specified property name or properties file is not found, the defaultObject is returned.
+ * @param resource The name of the resource - if the properties file is 'webevent.properties', the resource name is 'webevent'
+ * @param name The name of the property in the properties file
+ * @param defaultNumber Optional: The Number to return if the property is not found.
+ * @param type A String of the the Object the Number is converted to (like "Integer").
+ * @return A Number-Object of the property as the defined type; or if not found the defaultObject
+ */
+ private static Number getPropertyNumber(String resource, String name, Number defaultNumber, String type) {
+ String str = getPropertyValue(resource, name);
+ if (UtilValidate.isEmpty(str)) {
+ Debug.logWarning("Error converting String \"" + str + "\" to " + type + "; using defaultNumber " + defaultNumber + ".", module);
+ return defaultNumber;
+ } else
+ try {
+ return (Number)(ObjectType.simpleTypeConvert(str, type, null, null));
+ } catch (GeneralException e) {
+ Debug.logWarning("Error converting String \"" + str + "\" to " + type + "; using defaultNumber " + defaultNumber + ".", module);
+ }
+ return defaultNumber;
+ }
+
+ /**
+ * Returns a Boolean-Object of the specified property name from the specified resource/properties file.
+ * If the specified property name or properties file is not found, the defaultValue is returned.
+ * @param resource The name of the resource - if the properties file is 'webevent.properties', the resource name is 'webevent'
+ * @param name The name of the property in the properties file
+ * @param defaultValue Optional: The Value to return if the property is not found or not the correct format.
+ * @return A Boolean-Object of the property; or if not found the defaultValue
+ */
+ public static Boolean getPropertyAsBoolean(String resource, String name, boolean defaultValue) {
+ String str = getPropertyValue(resource, name);
+ if ("true".equalsIgnoreCase(str)) return Boolean.TRUE;
+ else if ("false".equalsIgnoreCase(str)) return Boolean.FALSE;
+ else return defaultValue;
+ }
+
+ /**
+ * Returns an Integer-Object of the specified property name from the specified resource/properties file.
+ * If the specified property name or properties file is not found, the defaultNumber is returned.
+ * @param resource The name of the resource - if the properties file is 'webevent.properties', the resource name is 'webevent'
+ * @param name The name of the property in the properties file
+ * @param defaultNumber Optional: The Value to return if the property is not found.
+ * @return An Integer-Object of the property; or if not found the defaultNumber
+ */
+ public static Integer getPropertyAsInteger(String resource, String name, int defaultNumber) {
+ return (Integer)getPropertyNumber(resource, name, defaultNumber, "Integer");
+ }
+
+ /**
+ * Returns a Long-Object of the specified property name from the specified resource/properties file.
+ * If the specified property name or properties file is not found, the defaultNumber is returned.
+ * @param resource The name of the resource - if the properties file is 'webevent.properties', the resource name is 'webevent'
+ * @param name The name of the property in the properties file
+ * @param defaultNumber Optional: The Value to return if the property is not found.
+ * @return A Long-Object of the property; or if not found the defaultNumber
+ */
+ public static Long getPropertyAsLong(String resource, String name, long defaultNumber) {
+ return (Long)getPropertyNumber(resource, name, defaultNumber, "Long");
+ }
+
+ /**
+ * Returns a Float-Object of the specified property name from the specified resource/properties file.
+ * If the specified property name or properties file is not found, the defaultNumber is returned.
+ * @param resource The name of the resource - if the properties file is 'webevent.properties', the resource name is 'webevent'
+ * @param name The name of the property in the properties file
+ * @param defaultNumber Optional: The Value to return if the property is not found.
+ * @return A Long-Object of the property; or if not found the defaultNumber
+ */
+ public static Float getPropertyAsFloat(String resource, String name, float defaultNumber) {
+ return (Float)getPropertyNumber(resource, name, defaultNumber, "Float");
+ }
+
+ /**
+ * Returns a Double-Object of the specified property name from the specified resource/properties file.
+ * If the specified property name or properties file is not found, the defaultNumber is returned.
+ * @param resource The name of the resource - if the properties file is 'webevent.properties', the resource name is 'webevent'
+ * @param name The name of the property in the properties file
+ * @param defaultNumber Optional: The Value to return if the property is not found.
+ * @return A Double-Object of the property; or if not found the defaultNumber
+ */
+ public static Double getPropertyAsDouble(String resource, String name, double defaultNumber) {
+ return (Double)getPropertyNumber(resource, name, defaultNumber, "Double");
+ }
+
+ /**
+ * Returns a BigInteger-Object of the specified property name from the specified resource/properties file.
+ * If the specified property name or properties file is not found, the defaultNumber is returned.
+ * @param resource The name of the resource - if the properties file is 'webevent.properties', the resource name is 'webevent'
+ * @param name The name of the property in the properties file
+ * @param defaultNumber Optional: The Value to return if the property is not found.
+ * @return A BigInteger-Object of the property; or if not found the defaultNumber
+ */
+ public static BigInteger getPropertyAsBigInteger(String resource, String name, BigInteger defaultNumber) {
+ String strValue = getPropertyValue(resource, name);
+ BigInteger result = defaultNumber;
+ try {
+ result = new BigInteger(strValue);
+ } catch (NumberFormatException nfe) {
+ Debug.logWarning("Couldnt convert String \"" + strValue + "\" to BigInteger; using defaultNumber " + defaultNumber.toString() + ".", module);
+ }
+ return result;
+ }
+
+ /**
+ * Returns a BigDecimal-Object of the specified property name from the specified resource/properties file.
+ * If the specified property name or properties file is not found, the defaultNumber is returned.
+ * @param resource The name of the resource - if the properties file is 'webevent.properties', the resource name is 'webevent'
+ * @param name The name of the property in the properties file
+ * @param defaultNumber Optional: The Value to return if the property is not found.
+ * @return A BigDecimal-Object of the property; or if not found the defaultNumber
+ */
+ public static BigDecimal getPropertyAsBigDecimal(String resource, String name, BigDecimal defaultNumber) {
+ String strValue = getPropertyValue(resource, name);
+ BigDecimal result = defaultNumber;
+ try {
+ result = new BigDecimal(strValue);
+ } catch (NumberFormatException nfe) {
+ Debug.logWarning("Couldnt convert String \"" + strValue + "\" to BigDecimal; using defaultNumber " + defaultNumber.toString() + ".", module);
+ }
+ return result;
+ }
+
/** Returns the value of the specified property name from the specified resource/properties file
* @param resource The name of the resource - can be a file, class, or URL
* @param name The name of the property in the properties file