[jboss-svn-commits] JBoss Common SVN: r1998 - 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
Wed Aug 30 03:30:16 EDT 2006


Author: alex.loubyansky at jboss.com
Date: 2006-08-30 03:30:15 -0400 (Wed, 30 Aug 2006)
New Revision: 1998

Modified:
   jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/JBXB76ContentHandler.java
Log:
duplicate startRepeatableParticle for the same element particle

Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/JBXB76ContentHandler.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/JBXB76ContentHandler.java	2006-08-29 18:45:01 UTC (rev 1997)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/JBXB76ContentHandler.java	2006-08-30 07:30:15 UTC (rev 1998)
@@ -286,7 +286,7 @@
                         endRepeatableParticle(prevParticle);
                      }
 
-                     if(curParticle.isRepeatable())
+                     if(newCursors.size() > 1 && curParticle.isRepeatable())
                      {
                         startRepeatableParticle(startName, curParticle);
                      }
@@ -574,20 +574,48 @@
 /*
       StackItem item = stack.peek();
 
+      TermBinding parentTerm = item.particle.getTerm();
+      WildcardBinding wc = null;
+      if(parentTerm.isWildcard())
+      {
+         wc = (WildcardBinding)parentTerm;
+      }
+      else if(!parentTerm.isModelGroup())
+      {
+         ElementBinding el = (ElementBinding)parentTerm;
+         wc = el.getType().getWildcard();
+         if(wc != null && el.getType().getElement(startName) != null)
+         {
+            wc = null;
+         }
+      }
+
+      TermBinding term = particle.getTerm();
+      if(term.getAddMethodMetaData() != null ||
+         wc != null && wc.getAddMethodMetaData() != null ||
+         term.getPutMethodMetaData() != null ||
+         term.getMapEntryMetaData() != null)
+      {
+         return;
+      }
+
       item.tmp = item.o;
       item.o = new ArrayList();
       item.repeatbleParticleName = startName;
-      //System.out.println("   parent: " + item);
+
 */
    }
 
    private void endRepeatableParticle(ParticleBinding particle)
    {
       //System.out.println(" end repeatable particle: " + particle.getTerm());
+
 /*
       StackItem item = stack.peek();
-      System.out.println("   " + item.o);
-      System.out.println("   " + item.tmp);
+      if(item.repeatbleParticleName == null)
+      {
+         return;
+      }
 
       TermBinding term = particle.getTerm();
       ParticleHandler handler = null;




More information about the jboss-svn-commits mailing list