Author: adrianc
Date: Tue Feb  2 16:35:28 2010
New Revision: 905696

URL: http://svn.apache.org/viewvc?rev=905696&view=rev
Log:
Made a small change to FlexibleStringExpander - created a NullElem class to 
support existing client code that tested getOriginal() for null. By the way, 
that is a bad practice - use the isEmpty() method instead.

Problem reported by Scott and Hans on the dev mailing list.

Modified:
    
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/FlexibleStringExpander.java

Modified: 
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/FlexibleStringExpander.java
URL: 
http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/FlexibleStringExpander.java?rev=905696&r1=905695&r2=905696&view=diff
==============================================================================
--- 
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/FlexibleStringExpander.java
 (original)
+++ 
ofbiz/trunk/framework/base/src/org/ofbiz/base/util/string/FlexibleStringExpander.java
 Tue Feb  2 16:35:28 2010
@@ -56,7 +56,7 @@
     public static final String openBracket = "${";
     public static final String closeBracket = "}";
     protected static final UtilCache<String, FlexibleStringExpander> exprCache 
= UtilCache.createUtilCache("flexibleStringExpander.ExpressionCache");
-    protected static final FlexibleStringExpander nullExpr = new ConstElem("");
+    protected static final FlexibleStringExpander nullExpr = new NullElem();
 
     /** Does on-the-fly parsing and expansion of the original String using
      * variable values from the passed context. A null context argument will
@@ -400,6 +400,26 @@
         }
     }
 
+    protected static class NullElem extends FlexibleStringExpander {
+        protected NullElem() {
+            super("");
+        }
+        @Override
+        public void append(StringBuilder buffer, Map<String, ? extends Object> 
context, TimeZone timeZone, Locale locale) {}
+        @Override
+        public String expandString(Map<String, ? extends Object> context, 
TimeZone timeZone, Locale locale) {
+            return null;
+        }
+        @Override
+        public String getOriginal() {
+            return null;
+        }
+        @Override
+        public boolean isEmpty() {
+            return true;
+        }
+    }
+
     protected static class VarElem extends FlexibleStringExpander {
         protected final char[] bracketedOriginal;
         protected VarElem(String original) {


Reply via email to