You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by do...@apache.org on 2010/02/10 23:41:48 UTC

svn commit: r908700 - /ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/MiscConverters.java

Author: doogie
Date: Wed Feb 10 22:41:47 2010
New Revision: 908700

URL: http://svn.apache.org/viewvc?rev=908700&view=rev
Log:
Add Enum converters.

Modified:
    ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/MiscConverters.java

Modified: ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/MiscConverters.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/MiscConverters.java?rev=908700&r1=908699&r2=908700&view=diff
==============================================================================
--- ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/MiscConverters.java (original)
+++ ofbiz/trunk/framework/base/src/org/ofbiz/base/conversion/MiscConverters.java Wed Feb 10 22:41:47 2010
@@ -30,6 +30,7 @@
 import java.util.UUID;
 import java.util.regex.Pattern;
 
+import org.ofbiz.base.util.UtilGenerics;
 import org.ofbiz.base.util.UtilMisc;
 
 /** Miscellaneous Converter classes. */
@@ -134,6 +135,58 @@
         }
     }
 
+    public static class EnumToString implements Converter<Enum, String> {
+        public EnumToString() {
+            Converters.registerConverter(this, Enum.class, String.class);
+        }
+
+        public boolean canConvert(Class<?> sourceClass, Class<?> targetClass) {
+            return sourceClass.isAssignableFrom(Enum.class) && targetClass.isAssignableFrom(String.class);
+        }
+
+        public String convert(Enum obj) throws ConversionException {
+            return obj.name();
+        }
+
+        public String convert(Class<?> targetClass, Enum obj) throws ConversionException {
+            return convert(obj);
+        }
+
+        public Class<?> getSourceClass() {
+            return null;
+        }
+
+        public Class<?> getTargetClass() {
+            return String.class;
+        }
+    }
+
+    public static class StringToEnum implements Converter<String, Enum> {
+        public StringToEnum() {
+            Converters.registerConverter(this, String.class, Enum.class);
+        }
+
+        public boolean canConvert(Class<?> sourceClass, Class<?> targetClass) {
+            return sourceClass.isAssignableFrom(String.class) && targetClass.isAssignableFrom(Enum.class);
+        }
+
+        public Enum convert(String obj) throws ConversionException {
+            throw new UnsupportedOperationException();
+        }
+
+        public Enum convert(Class<?> targetClass, String obj) throws ConversionException {
+            return Enum.valueOf(UtilGenerics.<Class<? extends Enum>>cast(targetClass), obj);
+        }
+
+        public Class<?> getSourceClass() {
+            return String.class;
+        }
+
+        public Class<?> getTargetClass() {
+            return null;
+        }
+    }
+
     public static class LocaleToString extends AbstractConverter<Locale, String> {
         public LocaleToString() {
             super(Locale.class, String.class);