Author: adrianc
Date: Wed Apr 4 12:49:12 2012 New Revision: 1309360 URL: http://svn.apache.org/viewvc?rev=1309360&view=rev Log: Added some static methods to FlexibleStringExpander that enable querying an expression about its component parts. 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=1309360&r1=1309359&r2=1309360&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 Wed Apr 4 12:49:12 2012 @@ -51,6 +51,55 @@ public abstract class FlexibleStringExpa protected static final UtilCache<Key, FlexibleStringExpander> exprCache = UtilCache.createUtilCache("flexibleStringExpander.ExpressionCache"); protected static final FlexibleStringExpander nullExpr = new ConstSimpleElem(new char[0]); + /** + * Returns <code>true</code> if <code>fse</code> contains a <code>String</code> constant. + * @param fse The <code>FlexibleStringExpander</code> to test + * @return <code>true</code> if <code>fse</code> contains a <code>String</code> constant + */ + public static boolean containsConstant(FlexibleStringExpander fse) { + if (fse instanceof ConstSimpleElem || fse instanceof ConstOffsetElem) { + return true; + } + if (fse instanceof Elements) { + Elements fseElements = (Elements) fse; + for (FlexibleStringExpander childElement : fseElements.childElems) { + if (containsConstant(childElement)) { + return true; + } + } + } + return false; + } + + /** + * Returns <code>true</code> if <code>fse</code> contains an expression. + * @param fse The <code>FlexibleStringExpander</code> to test + * @return <code>true</code> if <code>fse</code> contains an expression + */ + public static boolean containsExpression(FlexibleStringExpander fse) { + return !(fse instanceof ConstSimpleElem); + } + + /** + * Returns <code>true</code> if <code>fse</code> contains a script. + * @param fse The <code>FlexibleStringExpander</code> to test + * @return <code>true</code> if <code>fse</code> contains a script + */ + public static boolean containsScript(FlexibleStringExpander fse) { + if (fse instanceof ScriptElem) { + return true; + } + if (fse instanceof Elements) { + Elements fseElements = (Elements) fse; + for (FlexibleStringExpander childElement : fseElements.childElems) { + if (containsScript(childElement)) { + return true; + } + } + } + return false; + } + /** Evaluate an expression and return the result as a <code>String</code>. * Null expressions return <code>null</code>. * A null <code>context</code> argument will return the original expression. |
Free forum by Nabble | Edit this page |