[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