[jboss-svn-commits] JBoss Common SVN: r2648 - 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
Wed Oct 24 13:27:14 EDT 2007


Author: alex.loubyansky at jboss.com
Date: 2007-10-24 13:27:14 -0400 (Wed, 24 Oct 2007)
New Revision: 2648

Modified:
   jbossxb/trunk/src/main/java/org/jboss/xb/annotations/JBossXmlCollection.java
   jbossxb/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java
Log:
rollback introduction of JBossXmlCollection.elementType (XmlElement.type should be used instead) and related compensating fixes for the metadata project

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-24 00:22:40 UTC (rev 2647)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/annotations/JBossXmlCollection.java	2007-10-24 17:27:14 UTC (rev 2648)
@@ -41,5 +41,4 @@
 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-24 00:22:40 UTC (rev 2647)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java	2007-10-24 17:27:14 UTC (rev 2648)
@@ -1194,16 +1194,28 @@
 
                   boolean isCol = false;
                   AbstractPropertyHandler memberPropertyHandler = null;
-                  if (memberTypeInfo.isCollection())
+                  if(memberProp.getType().isCollection())
                   {
-                     memberPropertyHandler = new CollectionPropertyHandler(memberProp, memberTypeInfo);
+                     memberPropertyHandler = new CollectionPropertyHandler(memberProp, memberProp.getType());
                      isCol = true;
-                     JBossXmlCollection xmlCol = memberProp.getUnderlyingAnnotation(JBossXmlCollection.class);
-                     if(xmlCol != null && xmlCol.elementType() != Void.class)
-                        memberTypeInfo = JBossXBBuilder.configuration.getTypeInfo(xmlCol.elementType());
-                     else
+                     // if memberXmlElement is present then the collection item type is set explicitly
+                     if(memberXmlElement == null || XmlElement.DEFAULT.class.equals(memberXmlElement.type()))
+                     {
+                        JBossXmlCollection jbossXmlCollection = memberProp.getUnderlyingAnnotation(JBossXmlCollection.class);
+                        if(jbossXmlCollection != null)
+                        {
+                           memberTypeInfo = memberTypeInfo.getTypeInfoFactory().getTypeInfo(jbossXmlCollection.type());
+                        }
                         memberTypeInfo = findComponentType((ClassInfo) memberTypeInfo);
+                     }
                   }
+                  // if it is bound with XmlElement.type to a collection
+                  else if (memberTypeInfo.isCollection())
+                  {
+                     memberPropertyHandler = new CollectionPropertyHandler(memberProp, memberTypeInfo);
+                     isCol = true;
+                     memberTypeInfo = findComponentType((ClassInfo) memberTypeInfo);
+                  }
                   else
                   {
                      memberPropertyHandler = new PropertyHandler(memberProp, memberTypeInfo);
@@ -1469,12 +1481,7 @@
                {
                   isCol = true;
                   propertyHandler = new CollectionPropertyHandler(property, propertyType);
-                  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);
+                  ClassInfo 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