[jboss-svn-commits] JBoss Common SVN: r2647 - in jbossxb/trunk/src/main/java/org/jboss/xb: builder and 1 other directory.

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Oct 23 20:22:40 EDT 2007


Author: scott.stark at jboss.org
Date: 2007-10-23 20:22:40 -0400 (Tue, 23 Oct 2007)
New Revision: 2647

Modified:
   jbossxb/trunk/src/main/java/org/jboss/xb/annotations/JBossXmlCollection.java
   jbossxb/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java
Log:
Add an elementType to the JBossXmlCollection annotation

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/annotations/JBossXmlCollection.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/annotations/JBossXmlCollection.java	2007-10-22 14:06:25 UTC (rev 2646)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/annotations/JBossXmlCollection.java	2007-10-24 00:22:40 UTC (rev 2647)
@@ -41,4 +41,5 @@
 public @interface JBossXmlCollection
 {
    Class<? extends java.util.Collection> type() default java.util.ArrayList.class;
+   Class elementType() default java.lang.Void.class;
 }

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java	2007-10-22 14:06:25 UTC (rev 2646)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java	2007-10-24 00:22:40 UTC (rev 2647)
@@ -1198,7 +1198,11 @@
                   {
                      memberPropertyHandler = new CollectionPropertyHandler(memberProp, memberTypeInfo);
                      isCol = true;
-                     memberTypeInfo = findComponentType((ClassInfo) memberTypeInfo);
+                     JBossXmlCollection xmlCol = memberProp.getUnderlyingAnnotation(JBossXmlCollection.class);
+                     if(xmlCol != null && xmlCol.elementType() != Void.class)
+                        memberTypeInfo = JBossXBBuilder.configuration.getTypeInfo(xmlCol.elementType());
+                     else
+                        memberTypeInfo = findComponentType((ClassInfo) memberTypeInfo);
                   }
                   else
                   {
@@ -1465,7 +1469,12 @@
                {
                   isCol = true;
                   propertyHandler = new CollectionPropertyHandler(property, propertyType);
-                  ClassInfo typeArg = (ClassInfo) findComponentType(property);
+                  ClassInfo typeArg = null;
+                  JBossXmlCollection xmlCol = property.getUnderlyingAnnotation(JBossXmlCollection.class);
+                  if(xmlCol != null && xmlCol.elementType() != Void.class)
+                     typeArg = (ClassInfo) JBossXBBuilder.configuration.getTypeInfo(xmlCol.elementType());
+                  else
+                     typeArg = (ClassInfo) findComponentType(property);
 
                   //if (((ClassInfo) typeArg).getUnderlyingAnnotation(XmlType.class) != null)
                   if (typeArg != null && typeArg.getUnderlyingAnnotation(JBossXmlModelGroup.class) == null)




More information about the jboss-svn-commits mailing list