[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