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

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Fri Jul 20 04:19:39 EDT 2007


Author: alex.loubyansky at jboss.com
Date: 2007-07-20 04:19:39 -0400 (Fri, 20 Jul 2007)
New Revision: 2451

Modified:
   jbossxb-builder/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java
   jbossxb-builder/trunk/src/main/java/org/jboss/xb/builder/runtime/BeanHandler.java
Log:
bind a group member of type collection to a repeatable particle (bean and property hadnlers should be ready to receive collection values for repeatable particles instead of expecting one item at a time)

Modified: jbossxb-builder/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java
===================================================================
--- jbossxb-builder/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java	2007-07-19 13:34:05 UTC (rev 2450)
+++ jbossxb-builder/trunk/src/main/java/org/jboss/xb/builder/JBossXBNoSchemaBuilder.java	2007-07-20 08:19:39 UTC (rev 2451)
@@ -1101,7 +1101,7 @@
                   TypeBinding memberTypeBinding = resolveTypeBinding(memberTypeInfo);
                   ElementBinding memberElement = createElementBinding(memberTypeInfo, memberTypeBinding, memberQName, false);
                   memberElement.setNillable(true);
-                  ParticleBinding memberParticle = new ParticleBinding(memberElement, 0, 1, false /* TODO should be isCol*/);
+                  ParticleBinding memberParticle = new ParticleBinding(memberElement, 0, 1, isCol);
                   localModel.addParticle(memberParticle);
                   
                   if(trace)

Modified: jbossxb-builder/trunk/src/main/java/org/jboss/xb/builder/runtime/BeanHandler.java
===================================================================
--- jbossxb-builder/trunk/src/main/java/org/jboss/xb/builder/runtime/BeanHandler.java	2007-07-19 13:34:05 UTC (rev 2450)
+++ jbossxb-builder/trunk/src/main/java/org/jboss/xb/builder/runtime/BeanHandler.java	2007-07-20 08:19:39 UTC (rev 2451)
@@ -176,7 +176,20 @@
             log.trace("QName " + qName + " unknown property parent=" + BuilderUtil.toDebugString(parent) + " child=" + BuilderUtil.toDebugString(o));
          return;
       }
-      propertyHandler.doHandle(beanAdapter, o, qName);
+      
+      if(particle.isRepeatable() && o instanceof java.util.Collection)
+      {
+         // TODO this is not optimal!
+         // repeatable particles are collected into java.util.Collection
+         for(Object item : (java.util.Collection)o)
+         {
+            propertyHandler.doHandle(beanAdapter, item, qName);
+         }
+      }
+      else
+      {
+         propertyHandler.doHandle(beanAdapter, o, qName);
+      }
    }
 
 /*   @Override




More information about the jboss-svn-commits mailing list