[jboss-cvs] JBossAS SVN: r64980 - in projects/microcontainer/trunk/metatype/src: main/org/jboss/metatype/api/values and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Aug 30 19:25:04 EDT 2007


Author: scott.stark at jboss.org
Date: 2007-08-30 19:25:04 -0400 (Thu, 30 Aug 2007)
New Revision: 64980

Modified:
   projects/microcontainer/trunk/metatype/src/main/org/jboss/metatype/api/types/EnumMetaType.java
   projects/microcontainer/trunk/metatype/src/main/org/jboss/metatype/api/values/EnumValueSupport.java
   projects/microcontainer/trunk/metatype/src/tests/org/jboss/test/metatype/values/factory/test/EnumValueFactoryUnitTestCase.java
Log:
Add better support for creating EnumType/EnumValue from java.lang.Enum

Modified: projects/microcontainer/trunk/metatype/src/main/org/jboss/metatype/api/types/EnumMetaType.java
===================================================================
--- projects/microcontainer/trunk/metatype/src/main/org/jboss/metatype/api/types/EnumMetaType.java	2007-08-30 21:45:07 UTC (rev 64979)
+++ projects/microcontainer/trunk/metatype/src/main/org/jboss/metatype/api/types/EnumMetaType.java	2007-08-30 23:25:04 UTC (rev 64980)
@@ -21,6 +21,7 @@
 */
 package org.jboss.metatype.api.types;
 
+import java.util.ArrayList;
 import java.util.Collections;
 import java.util.List;
 
@@ -53,7 +54,24 @@
          throw new IllegalArgumentException("Null valid values");
       this.validValues = validValues;
    }
+   /**
+    * Create a new EnumMetaType from the Enum values.
+    * 
+    * @param className the class name
+    * @param validValues the valid Enum values
+    */
+   public EnumMetaType(Enum[] validValues)
+   {
+      super(String.class.getName(), validValues[0].getClass().getName(), validValues[0].getClass().getName());
+      if (validValues == null)
+         throw new IllegalArgumentException("Null valid values");
+      ArrayList<String> values = new ArrayList<String>();
+      for (Enum e : validValues)
+         values.add(e.name());
+      this.validValues = values;
+   }
    
+   
    /**
     * Get the valid values
     * 

Modified: projects/microcontainer/trunk/metatype/src/main/org/jboss/metatype/api/values/EnumValueSupport.java
===================================================================
--- projects/microcontainer/trunk/metatype/src/main/org/jboss/metatype/api/values/EnumValueSupport.java	2007-08-30 21:45:07 UTC (rev 64979)
+++ projects/microcontainer/trunk/metatype/src/main/org/jboss/metatype/api/values/EnumValueSupport.java	2007-08-30 23:25:04 UTC (rev 64980)
@@ -55,6 +55,16 @@
       this.metaType = metaType;
       this.value = value;
    }
+   /**
+    * Create a new EnumValueSupport from an Enum value.
+    * @param metaType the enum meta type
+    * @param value the enum instance
+    * @throws IllegalArgumentException for a null enum MetaType
+    */
+   public EnumValueSupport(EnumMetaType metaType, Enum value)
+   {
+      this(metaType, value.name());
+   }
 
    public EnumMetaType getMetaType()
    {

Modified: projects/microcontainer/trunk/metatype/src/tests/org/jboss/test/metatype/values/factory/test/EnumValueFactoryUnitTestCase.java
===================================================================
--- projects/microcontainer/trunk/metatype/src/tests/org/jboss/test/metatype/values/factory/test/EnumValueFactoryUnitTestCase.java	2007-08-30 21:45:07 UTC (rev 64979)
+++ projects/microcontainer/trunk/metatype/src/tests/org/jboss/test/metatype/values/factory/test/EnumValueFactoryUnitTestCase.java	2007-08-30 23:25:04 UTC (rev 64980)
@@ -62,7 +62,7 @@
     * 
     * @throws Exception for any problem
     */
-   public void testEnum() throws Exception
+   public void testEnumFromString() throws Exception
    {
       EnumMetaType enumType = assertInstanceOf(resolve(TestEnum.class), EnumMetaType.class);
       EnumValue expected = new EnumValueSupport(enumType, TestEnum.ONE.name());
@@ -73,4 +73,15 @@
       getLog().debug("Enum Value: " + actual);
       assertEquals(expected, actual);
    }
+   public void testEnum() throws Exception
+   {
+      EnumMetaType enumType = assertInstanceOf(resolve(TestEnum.class), EnumMetaType.class);
+      EnumValue expected = new EnumValueSupport(enumType, TestEnum.ONE);
+
+      MetaValue result = createMetaValue(TestEnum.ONE);
+      EnumValue actual = assertInstanceOf(result, EnumValue.class);
+      
+      getLog().debug("Enum Value: " + actual);
+      assertEquals(expected, actual);
+   }
 }




More information about the jboss-cvs-commits mailing list