[jboss-svn-commits] JBoss Common SVN: r2185 - jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Mon Dec 4 11:33:58 EST 2006


Author: alex.loubyansky at jboss.com
Date: 2006-12-04 11:33:56 -0500 (Mon, 04 Dec 2006)
New Revision: 2185

Modified:
   jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SundayContentHandler.java
Log:
to add values from the ValueList use the handlers that were supposed to be used when the values were added to the list

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SundayContentHandler.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SundayContentHandler.java	2006-11-29 01:01:50 UTC (rev 2184)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SundayContentHandler.java	2006-12-04 16:33:56 UTC (rev 2185)
@@ -37,6 +37,7 @@
 import org.jboss.xb.binding.group.ValueList;
 import org.jboss.xb.binding.group.ValueListHandler;
 import org.jboss.xb.binding.group.ValueListInitializer;
+import org.jboss.xb.binding.group.ValueList.NonRequiredValue;
 import org.jboss.xb.binding.introspection.FieldInfo;
 import org.jboss.xb.binding.metadata.CharactersMetaData;
 import org.jboss.xb.binding.metadata.PropertyMetaData;
@@ -683,19 +684,36 @@
             
          if(particle.getTerm().isWildcard())
          {
-            ParticleHandler handler = ((WildcardBinding)particle.getTerm()).getWildcardHandler();
-            if(handler == null)
+            ParticleHandler handler = null;
+/*
+            handler = ((WildcardBinding) particle.getTerm()).getWildcardHandler();
+            if (handler == null)
             {
                handler = defParticleHandler;
             }
-
+ */
+            
             // that's not good. some elements can be handled as "unresolved" and some as "resolved"
             QName qName = valueList.getValue(0).qName;
             Collection col = new ArrayList();
             for(int i = 0; i < valueList.size(); ++i)
             {
-               col.add(valueList.getValue(i).value);
+               NonRequiredValue value = valueList.getValue(i);
+               col.add(value.value);
+
+               if(handler != value.handler)
+               {
+                  if(handler == null && i == 0)
+                  {
+                     handler = (ParticleHandler) value.handler;
+                  }
+                  else
+                  {
+                     throw new JBossXBRuntimeException("Handlers in the list are supposed to be the same.");
+                  }
+               }
             }
+
             StackItem parentItem = stack.peek(1);
             handler.setParent(parentItem.o, col, qName, particle, parentItem.particle);
          }




More information about the jboss-svn-commits mailing list