[jboss-svn-commits] JBoss Common SVN: r2455 - jbossxb-builder/trunk/src/main/java/org/jboss/xb/builder/runtime.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Jul 25 07:27:37 EDT 2007
Author: alex.loubyansky at jboss.com
Date: 2007-07-25 07:27:37 -0400 (Wed, 25 Jul 2007)
New Revision: 2455
Modified:
jbossxb-builder/trunk/src/main/java/org/jboss/xb/builder/runtime/BeanHandler.java
Log:
use ValueAdapter if available (should probably be used on a lower level)
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-25 11:26:01 UTC (rev 2454)
+++ jbossxb-builder/trunk/src/main/java/org/jboss/xb/builder/runtime/BeanHandler.java 2007-07-25 11:27:37 UTC (rev 2455)
@@ -30,6 +30,7 @@
import org.jboss.xb.binding.sunday.unmarshalling.ModelGroupBinding;
import org.jboss.xb.binding.sunday.unmarshalling.ParticleBinding;
import org.jboss.xb.binding.sunday.unmarshalling.TermBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.ValueAdapter;
import org.jboss.xb.spi.BeanAdapter;
import org.jboss.xb.spi.BeanAdapterFactory;
import org.xml.sax.Attributes;
@@ -131,14 +132,20 @@
if (trace)
log.trace("setParent " + qName + " parent=" + BuilderUtil.toDebugString(parent) + " child=" + BuilderUtil.toDebugString(o));
- if(particle.getTerm().isModelGroup())
+ TermBinding term = particle.getTerm();
+ ValueAdapter valueAdapter = null;
+ if(term.isModelGroup())
{
- QName modelGroupName = ((ModelGroupBinding)particle.getTerm()).getQName();
+ QName modelGroupName = ((ModelGroupBinding)term).getQName();
if(modelGroupName != null)
{
qName = modelGroupName;
}
}
+ else if(term.isElement())
+ {
+ valueAdapter = ((ElementBinding)term).getValueAdapter();
+ }
if (parent != null && parent instanceof ArrayWrapper)
{
@@ -167,7 +174,7 @@
return;
}
}
- TermBinding element = particle.getTerm();
+ TermBinding element = term;
if (element.getSchema().isStrictSchema())
{
throw new RuntimeException("QName " + qName + " unknown property parent=" + BuilderUtil.toDebugString(parent) + " child=" + BuilderUtil.toDebugString(o) + " available=" + beanAdapter.getAvailable());
@@ -176,7 +183,7 @@
log.trace("QName " + qName + " unknown property parent=" + BuilderUtil.toDebugString(parent) + " child=" + BuilderUtil.toDebugString(o));
return;
}
-
+
if(particle.isRepeatable() && o instanceof java.util.Collection)
{
// TODO this is not optimal!
@@ -188,6 +195,11 @@
}
else
{
+ // TODO looks like value adapter should be used earlier in the stack
+ if(valueAdapter != null)
+ {
+ o = valueAdapter.cast(o, null/*propertyHandler.getPropertyType().getType()*/);
+ }
propertyHandler.doHandle(beanAdapter, o, qName);
}
}
More information about the jboss-svn-commits
mailing list