Repository: wicket
Updated Branches:
  refs/heads/WICKET-5906-7.x [created] 830794f88


WICKET-5906


Project: http://git-wip-us.apache.org/repos/asf/wicket/repo
Commit: http://git-wip-us.apache.org/repos/asf/wicket/commit/79a3d50b
Tree: http://git-wip-us.apache.org/repos/asf/wicket/tree/79a3d50b
Diff: http://git-wip-us.apache.org/repos/asf/wicket/diff/79a3d50b

Branch: refs/heads/WICKET-5906-7.x
Commit: 79a3d50be3924a33d34e034fd2f8eab7e54c75fb
Parents: 3dd37b3
Author: Andrea Del Bene <“[email protected]”>
Authored: Wed Jun 3 09:54:22 2015 +0200
Committer: Andrea Del Bene <“[email protected]”>
Committed: Wed Jun 3 09:54:22 2015 +0200

----------------------------------------------------------------------
 .../mapper/AbstractResourceReferenceMapper.java | 156 -------------------
 .../mapper/BasicResourceReferenceMapper.java    |   6 +-
 .../core/request/mapper/ResourceMapper.java     |   4 +-
 .../resource/PackageResourceReference.java      |  22 ++-
 .../apache/wicket/resource/ResourceUtil.java    | 148 +++++++++++++++++-
 .../AbstractResourceReferenceMapperOwnTest.java |   5 +-
 .../org/apache/wicket/util/lang/Objects.java    |   5 +
 .../org/apache/wicket/util/string/Strings.java  |  12 ++
 8 files changed, 189 insertions(+), 169 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/wicket/blob/79a3d50b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/AbstractResourceReferenceMapper.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/AbstractResourceReferenceMapper.java
 
b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/AbstractResourceReferenceMapper.java
index f95ca9e..7dea46e 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/AbstractResourceReferenceMapper.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/AbstractResourceReferenceMapper.java
@@ -16,12 +16,8 @@
  */
 package org.apache.wicket.core.request.mapper;
 
-import java.util.Locale;
-
 import org.apache.wicket.request.Url;
 import org.apache.wicket.request.resource.ResourceReference;
-import org.apache.wicket.util.lang.Args;
-import org.apache.wicket.util.string.Strings;
 
 /**
  * Base class for encoding and decoding {@link ResourceReference}s
@@ -31,158 +27,6 @@ import org.apache.wicket.util.string.Strings;
 public abstract class AbstractResourceReferenceMapper extends 
AbstractComponentMapper
 {
        /**
-        * Escapes any occurrences of <em>-</em> character in the style and 
variation
-        * attributes with <em>~</em>. Any occurrence of <em>~</em> is encoded 
as <em>~~</em>.
-        *
-        * @param attribute
-        *      the attribute to escape
-        * @return the attribute with escaped separator character
-        */
-       public static CharSequence escapeAttributesSeparator(String attribute)
-       {
-               CharSequence tmp = Strings.replaceAll(attribute, "~", "~~");
-               return Strings.replaceAll(tmp, "-", "~");
-       }
-
-       /**
-        * Reverts the escaping applied by {@linkplain 
#escapeAttributesSeparator(String)} - unescapes
-        * occurrences of <em>~</em> character in the style and variation 
attributes with <em>-</em>.
-        *
-        * @param attribute
-        *      the attribute to unescape
-        * @return the attribute with escaped separator character
-        */
-       public static String unescapeAttributesSeparator(String attribute)
-       {
-               String tmp = attribute.replaceAll("(\\w)~(\\w)", "$1-$2");
-               return Strings.replaceAll(tmp, "~~", "~").toString();
-       }
-
-       protected final String 
encodeResourceReferenceAttributes(ResourceReference.UrlAttributes attributes)
-       {
-               if (attributes == null ||
-                       (attributes.getLocale() == null && 
attributes.getStyle() == null && attributes.getVariation() == null))
-               {
-                       return null;
-               }
-               else
-               {
-                       StringBuilder res = new StringBuilder(32);
-                       if (attributes.getLocale() != null)
-                       {
-                               res.append(attributes.getLocale());
-                       }
-                       boolean styleEmpty = 
Strings.isEmpty(attributes.getStyle());
-                       if (!styleEmpty)
-                       {
-                               res.append('-');
-                               
res.append(escapeAttributesSeparator(attributes.getStyle()));
-                       }
-                       if (!Strings.isEmpty(attributes.getVariation()))
-                       {
-                               if (styleEmpty)
-                               {
-                                       res.append("--");
-                               }
-                               else
-                               {
-                                       res.append('-');
-                               }
-                               
res.append(escapeAttributesSeparator(attributes.getVariation()));
-                       }
-                       return res.toString();
-               }
-       }
-
-       private static String nonEmpty(String s)
-       {
-               if (Strings.isEmpty(s))
-               {
-                       return null;
-               }
-               else
-               {
-                       return s;
-               }
-       }
-
-       protected final ResourceReference.UrlAttributes 
decodeResourceReferenceAttributes(String attributes)
-       {
-               Locale locale = null;
-               String style = null;
-               String variation = null;
-
-               if (Strings.isEmpty(attributes) == false)
-               {
-                       String split[] = Strings.split(attributes, '-');
-                       locale = parseLocale(split[0]);
-                       if (split.length == 2)
-                       {
-                               style = 
nonEmpty(unescapeAttributesSeparator(split[1]));
-                       }
-                       else if (split.length == 3)
-                       {
-                               style = 
nonEmpty(unescapeAttributesSeparator(split[1]));
-                               variation = 
nonEmpty(unescapeAttributesSeparator(split[2]));
-                       }
-               }
-               return new ResourceReference.UrlAttributes(locale, style, 
variation);
-       }
-
-       private static Locale parseLocale(String locale)
-       {
-               if (Strings.isEmpty(locale))
-               {
-                       return null;
-               }
-               else
-               {
-                       String parts[] = locale.toLowerCase().split("_", 3);
-                       if (parts.length == 1)
-                       {
-                               return new Locale(parts[0]);
-                       }
-                       else if (parts.length == 2)
-                       {
-                               return new Locale(parts[0], parts[1]);
-                       }
-                       else if (parts.length == 3)
-                       {
-                               return new Locale(parts[0], parts[1], parts[2]);
-                       }
-                       else
-                       {
-                               return null;
-                       }
-               }
-       }
-
-       protected void encodeResourceReferenceAttributes(Url url, 
ResourceReference reference)
-       {
-               String encoded = 
encodeResourceReferenceAttributes(reference.getUrlAttributes());
-               if (!Strings.isEmpty(encoded))
-               {
-                       url.getQueryParameters().add(new 
Url.QueryParameter(encoded, ""));
-               }
-       }
-
-       protected ResourceReference.UrlAttributes 
getResourceReferenceAttributes(Url url)
-       {
-               Args.notNull(url, "url");
-
-               if (url.getQueryParameters().size() > 0)
-               {
-                       Url.QueryParameter param = 
url.getQueryParameters().get(0);
-                       if (Strings.isEmpty(param.getValue()))
-                       {
-                               return 
decodeResourceReferenceAttributes(param.getName());
-                       }
-               }
-               return new ResourceReference.UrlAttributes(null, null, null);
-       }
-
-
-       /**
         * {@inheritDoc}
         *
         * Remove the first parameter because it brings meta information like 
locale

http://git-wip-us.apache.org/repos/asf/wicket/blob/79a3d50b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/BasicResourceReferenceMapper.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/BasicResourceReferenceMapper.java
 
b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/BasicResourceReferenceMapper.java
index e7d14b7..6438f1e 100755
--- 
a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/BasicResourceReferenceMapper.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/BasicResourceReferenceMapper.java
@@ -33,6 +33,7 @@ import 
org.apache.wicket.request.resource.ResourceReferenceRegistry;
 import org.apache.wicket.request.resource.caching.IResourceCachingStrategy;
 import org.apache.wicket.request.resource.caching.IStaticCacheableResource;
 import org.apache.wicket.request.resource.caching.ResourceUrl;
+import org.apache.wicket.resource.ResourceUtil;
 import org.apache.wicket.resource.bundles.ResourceBundleReference;
 import org.apache.wicket.util.IProvider;
 import org.apache.wicket.util.lang.Args;
@@ -124,7 +125,7 @@ public class BasicResourceReferenceMapper extends 
AbstractResourceReferenceMappe
                                name.append(segment);
                        }
 
-                       ResourceReference.UrlAttributes attributes = 
getResourceReferenceAttributes(url);
+                       ResourceReference.UrlAttributes attributes = 
ResourceUtil.decodeResourceReferenceAttributes(url);
 
                        Class<?> scope = resolveClass(className);
 
@@ -212,7 +213,8 @@ public class BasicResourceReferenceMapper extends 
AbstractResourceReferenceMappe
                                // need to remove indexed parameters otherwise 
the URL won't be able to decode
                                parameters.clearIndexed();
                        }
-                       encodeResourceReferenceAttributes(url, reference);
+                       
+                       ResourceUtil.encodeResourceReferenceAttributes(url, 
reference);
 
                        StringTokenizer tokens = new 
StringTokenizer(reference.getName(), "/");
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/79a3d50b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/ResourceMapper.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/ResourceMapper.java
 
b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/ResourceMapper.java
index cc6f6d3..eb2278e 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/ResourceMapper.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/core/request/mapper/ResourceMapper.java
@@ -37,6 +37,7 @@ import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.wicket.request.resource.caching.IResourceCachingStrategy;
 import org.apache.wicket.request.resource.caching.IStaticCacheableResource;
 import org.apache.wicket.request.resource.caching.ResourceUrl;
+import org.apache.wicket.resource.ResourceUtil;
 import org.apache.wicket.util.lang.Args;
 import org.apache.wicket.util.string.Strings;
 
@@ -201,7 +202,8 @@ public class ResourceMapper extends AbstractMapper 
implements IRequestMapper
 
                // add caching information
                addCachingDecoration(url, parameters);
-
+               
+               ResourceUtil.encodeResourceReferenceAttributes(url, 
resourceReference);
                // create url
                return encodePageParameters(url, parameters, parametersEncoder);
        }

http://git-wip-us.apache.org/repos/asf/wicket/blob/79a3d50b/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java
 
b/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java
index 4bd20f0..c7f8da1 100644
--- 
a/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java
+++ 
b/wicket-core/src/main/java/org/apache/wicket/request/resource/PackageResourceReference.java
@@ -22,7 +22,11 @@ import java.util.concurrent.ConcurrentMap;
 import org.apache.wicket.Application;
 import org.apache.wicket.Session;
 import org.apache.wicket.core.util.resource.locator.IResourceStreamLocator;
+import org.apache.wicket.request.Url;
+import org.apache.wicket.request.cycle.RequestCycle;
+import org.apache.wicket.resource.ResourceUtil;
 import org.apache.wicket.util.lang.Generics;
+import org.apache.wicket.util.lang.Objects;
 import org.apache.wicket.util.lang.Packages;
 import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.ResourceUtils;
@@ -119,21 +123,27 @@ public class PackageResourceReference extends 
ResourceReference
                final String extension = getExtension();
 
                final PackageResource resource;
+               
+               final Url url = RequestCycle.get().getRequest().getUrl();
+               final UrlAttributes urlAttributes = 
ResourceUtil.decodeResourceReferenceAttributes(url);
 
                if (CSS_EXTENSION.equals(extension))
                {
-                       resource = new CssPackageResource(getScope(), 
getName(), getLocale(), getStyle(),
-                               getVariation()).readBuffered(readBuffered);
+                       resource = new CssPackageResource(getScope(), 
getName(), Objects.defaultIfNull(getLocale(), urlAttributes.getLocale()), 
+                               Objects.defaultIfNull(getStyle(), 
urlAttributes.getStyle()),
+                               Objects.defaultIfNull(getVariation(), 
urlAttributes.getVariation())).readBuffered(readBuffered);
                }
                else if (JAVASCRIPT_EXTENSION.equals(extension))
                {
-                       resource = new JavaScriptPackageResource(getScope(), 
getName(), getLocale(),
-                               getStyle(), 
getVariation()).readBuffered(readBuffered);
+                       resource = new JavaScriptPackageResource(getScope(), 
getName(), Objects.defaultIfNull(getLocale(), urlAttributes.getLocale()), 
+                               Objects.defaultIfNull(getStyle(), 
urlAttributes.getStyle()),
+                               Objects.defaultIfNull(getVariation(), 
urlAttributes.getVariation())).readBuffered(readBuffered);
                }
                else
                {
-                       resource = new PackageResource(getScope(), getName(), 
getLocale(), getStyle(),
-                               getVariation()).readBuffered(readBuffered);
+                       resource = new PackageResource(getScope(), getName(), 
Objects.defaultIfNull(getLocale(), urlAttributes.getLocale()), 
+                               Objects.defaultIfNull(getStyle(), 
urlAttributes.getStyle()),
+                               Objects.defaultIfNull(getVariation(), 
urlAttributes.getVariation())).readBuffered(readBuffered);
                }
 
                removeCompressFlagIfUnnecessary(resource);

http://git-wip-us.apache.org/repos/asf/wicket/blob/79a3d50b/wicket-core/src/main/java/org/apache/wicket/resource/ResourceUtil.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/main/java/org/apache/wicket/resource/ResourceUtil.java 
b/wicket-core/src/main/java/org/apache/wicket/resource/ResourceUtil.java
index 3f03207..b94ad25 100644
--- a/wicket-core/src/main/java/org/apache/wicket/resource/ResourceUtil.java
+++ b/wicket-core/src/main/java/org/apache/wicket/resource/ResourceUtil.java
@@ -19,11 +19,16 @@ package org.apache.wicket.resource;
 import java.io.IOException;
 import java.io.InputStream;
 import java.nio.charset.Charset;
+import java.util.Locale;
 
 import org.apache.wicket.WicketRuntimeException;
+import org.apache.wicket.request.Url;
+import org.apache.wicket.request.resource.ResourceReference;
 import org.apache.wicket.util.io.IOUtils;
+import org.apache.wicket.util.lang.Args;
 import org.apache.wicket.util.resource.IResourceStream;
 import org.apache.wicket.util.resource.ResourceStreamNotFoundException;
+import org.apache.wicket.util.string.Strings;
 
 /**
  * Utilities for resources.
@@ -33,9 +38,129 @@ import 
org.apache.wicket.util.resource.ResourceStreamNotFoundException;
 public class ResourceUtil
 {
 
-       private ResourceUtil()
+       public static ResourceReference.UrlAttributes 
decodeResourceReferenceAttributes(String attributes)
        {
-               // no-op
+               Locale locale = null;
+               String style = null;
+               String variation = null;
+       
+               if (Strings.isEmpty(attributes) == false)
+               {
+                       String split[] = Strings.split(attributes, '-');
+                       locale = parseLocale(split[0]);
+                       if (split.length == 2)
+                       {
+                               style = 
Strings.notEmpty(unescapeAttributesSeparator(split[1]), null);
+                       }
+                       else if (split.length == 3)
+                       {
+                               style = 
Strings.notEmpty(unescapeAttributesSeparator(split[1]), null);
+                               variation = 
Strings.notEmpty(unescapeAttributesSeparator(split[2]), null);
+                       }
+               }
+               return new ResourceReference.UrlAttributes(locale, style, 
variation);
+       }
+
+       public static ResourceReference.UrlAttributes 
decodeResourceReferenceAttributes(Url url)
+       {
+               Args.notNull(url, "url");
+       
+               if (url.getQueryParameters().size() > 0)
+               {
+                       Url.QueryParameter param = 
url.getQueryParameters().get(0);
+                       if (Strings.isEmpty(param.getValue()))
+                       {
+                               return 
decodeResourceReferenceAttributes(param.getName());
+                       }
+               }
+               return new ResourceReference.UrlAttributes(null, null, null);
+       }
+
+       public static String 
encodeResourceReferenceAttributes(ResourceReference.UrlAttributes attributes)
+       {
+               if (attributes == null ||
+                       (attributes.getLocale() == null && 
attributes.getStyle() == null && attributes.getVariation() == null))
+               {
+                       return null;
+               }
+               else
+               {
+                       StringBuilder res = new StringBuilder(32);
+                       if (attributes.getLocale() != null)
+                       {
+                               res.append(attributes.getLocale());
+                       }
+                       boolean styleEmpty = 
Strings.isEmpty(attributes.getStyle());
+                       if (!styleEmpty)
+                       {
+                               res.append('-');
+                               
res.append(escapeAttributesSeparator(attributes.getStyle()));
+                       }
+                       if (!Strings.isEmpty(attributes.getVariation()))
+                       {
+                               if (styleEmpty)
+                               {
+                                       res.append("--");
+                               }
+                               else
+                               {
+                                       res.append('-');
+                               }
+                               
res.append(escapeAttributesSeparator(attributes.getVariation()));
+                       }
+                       return res.toString();
+               }
+       }
+
+       public static void encodeResourceReferenceAttributes(Url url, 
ResourceReference reference)
+       {
+               String encoded = 
encodeResourceReferenceAttributes(reference.getUrlAttributes());
+               if (!Strings.isEmpty(encoded))
+               {
+                       url.getQueryParameters().add(new 
Url.QueryParameter(encoded, ""));
+               }
+       }
+
+       /**
+        * Escapes any occurrences of <em>-</em> character in the style and 
variation
+        * attributes with <em>~</em>. Any occurrence of <em>~</em> is encoded 
as <em>~~</em>.
+        *
+        * @param attribute
+        *      the attribute to escape
+        * @return the attribute with escaped separator character
+        */
+       public static CharSequence escapeAttributesSeparator(String attribute)
+       {
+               CharSequence tmp = Strings.replaceAll(attribute, "~", "~~");
+               return Strings.replaceAll(tmp, "-", "~");
+       }
+
+       public static Locale parseLocale(String locale)
+       {
+               if (Strings.isEmpty(locale))
+               {
+                       return null;
+               }
+               else
+               {
+                       String parts[] = locale.toLowerCase().split("_", 3);
+                       if (parts.length == 1)
+                       {
+                               return new Locale(parts[0]);
+                       }
+                       else if (parts.length == 2)
+                       {
+                               return new Locale(parts[0], parts[1]);
+                       }
+                       else if (parts.length == 3)
+                       {
+                               return new Locale(parts[0], parts[1], parts[2]);
+                       }
+                       else
+                       {
+                               return null;
+                       }
+               }
        }
 
        /**
@@ -91,4 +216,23 @@ public class ResourceUtil
                        throw new WicketRuntimeException("failed to locate 
stream from " + resourceStream, e);
                }
        }
+
+       /**
+        * Reverts the escaping applied by {@linkplain 
#escapeAttributesSeparator(String)} - unescapes
+        * occurrences of <em>~</em> character in the style and variation 
attributes with <em>-</em>.
+        *
+        * @param attribute
+        *      the attribute to unescape
+        * @return the attribute with escaped separator character
+        */
+       public static String unescapeAttributesSeparator(String attribute)
+       {
+               String tmp = attribute.replaceAll("(\\w)~(\\w)", "$1-$2");
+               return Strings.replaceAll(tmp, "~~", "~").toString();
+       }
+
+       private ResourceUtil()
+       {
+               // no-op
+       }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/79a3d50b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/AbstractResourceReferenceMapperOwnTest.java
----------------------------------------------------------------------
diff --git 
a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/AbstractResourceReferenceMapperOwnTest.java
 
b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/AbstractResourceReferenceMapperOwnTest.java
index 478fe19..1345687 100644
--- 
a/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/AbstractResourceReferenceMapperOwnTest.java
+++ 
b/wicket-core/src/test/java/org/apache/wicket/core/request/mapper/AbstractResourceReferenceMapperOwnTest.java
@@ -19,6 +19,7 @@ package org.apache.wicket.core.request.mapper;
 import org.apache.wicket.request.IRequestHandler;
 import org.apache.wicket.request.Request;
 import org.apache.wicket.request.Url;
+import org.apache.wicket.resource.ResourceUtil;
 import org.junit.Assert;
 import org.junit.Test;
 
@@ -31,7 +32,7 @@ public class AbstractResourceReferenceMapperOwnTest extends 
Assert
        public void testEscapeAttributesSeparator() throws Exception
        {
                AbstractResourceReferenceMapper mapper = new Mapper();
-               CharSequence escaped = 
mapper.escapeAttributesSeparator("my-style~is~~cool");
+               CharSequence escaped = 
ResourceUtil.escapeAttributesSeparator("my-style~is~~cool");
                assertEquals("my~style~~is~~~~cool", escaped.toString());
        }
 
@@ -39,7 +40,7 @@ public class AbstractResourceReferenceMapperOwnTest extends 
Assert
        public void testUnescapeAttributesSeparator() throws Exception
        {
                AbstractResourceReferenceMapper mapper = new Mapper();
-               CharSequence escaped = 
mapper.unescapeAttributesSeparator("my~style~~is~~~~cool");
+               CharSequence escaped = 
ResourceUtil.unescapeAttributesSeparator("my~style~~is~~~~cool");
                assertEquals("my-style~is~~cool", escaped.toString());
        }
 

http://git-wip-us.apache.org/repos/asf/wicket/blob/79a3d50b/wicket-util/src/main/java/org/apache/wicket/util/lang/Objects.java
----------------------------------------------------------------------
diff --git a/wicket-util/src/main/java/org/apache/wicket/util/lang/Objects.java 
b/wicket-util/src/main/java/org/apache/wicket/util/lang/Objects.java
index 4757401..42b14c5 100755
--- a/wicket-util/src/main/java/org/apache/wicket/util/lang/Objects.java
+++ b/wicket-util/src/main/java/org/apache/wicket/util/lang/Objects.java
@@ -772,4 +772,9 @@ public final class Objects
        private Objects()
        {
        }
+
+       public static <T> T defaultIfNull(T originalObj, T defaultObj)
+       {
+               return originalObj != null ? originalObj : defaultObj;
+       }
 }

http://git-wip-us.apache.org/repos/asf/wicket/blob/79a3d50b/wicket-util/src/main/java/org/apache/wicket/util/string/Strings.java
----------------------------------------------------------------------
diff --git 
a/wicket-util/src/main/java/org/apache/wicket/util/string/Strings.java 
b/wicket-util/src/main/java/org/apache/wicket/util/string/Strings.java
index 49119f7..a9a54b9 100755
--- a/wicket-util/src/main/java/org/apache/wicket/util/string/Strings.java
+++ b/wicket-util/src/main/java/org/apache/wicket/util/string/Strings.java
@@ -1562,4 +1562,16 @@ public final class Strings
                                        String.format("Cannot convert '%s' to 
enum constant of type '%s'.", value, enumClass), e);
                }
        }
+
+       public static String notEmpty(String originalString, String 
normalizedValue)
+       {
+               if (isEmpty(originalString))
+               {
+                       return normalizedValue;
+               }
+               else
+               {
+                       return originalString;
+               }
+       }
 }

Reply via email to