[jboss-svn-commits] JBoss Common SVN: r1974 - trunk/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
Tue Aug 29 08:26:35 EDT 2006


Author: alex.loubyansky at jboss.com
Date: 2006-08-29 08:26:34 -0400 (Tue, 29 Aug 2006)
New Revision: 1974

Modified:
   trunk/jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/JBXB76ContentHandler.java
Log:
missed call to startRepeatableParticle

Modified: trunk/jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/JBXB76ContentHandler.java
===================================================================
--- trunk/jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/JBXB76ContentHandler.java	2006-08-28 14:43:31 UTC (rev 1973)
+++ trunk/jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/JBXB76ContentHandler.java	2006-08-29 12:26:34 UTC (rev 1974)
@@ -99,11 +99,11 @@
          {
             if(item.ended)
             {
+               pop();
                if(item.particle.isRepeatable())
                {
                   endRepeatableParticle(item.particle);
                }
-               pop();
             }
             else
             {
@@ -115,11 +115,11 @@
          else
          {
             endParticle(item, endName, 1);
+            pop();
             if(item.particle.isRepeatable())
             {
                endRepeatableParticle(item.particle);
             }
-            pop();
          }
       }
 
@@ -196,11 +196,11 @@
                   }
                   else
                   {
+                     pop();
                      if(item.particle.isRepeatable())
                      {
                         endRepeatableParticle(item.particle);
                      }
-                     pop();
                      continue;
                   }
                }
@@ -238,6 +238,11 @@
                         cursor = (ModelGroupBinding.Cursor)newCursors.get(i);
 
                         ParticleBinding modelGroupParticle = cursor.getParticle();
+                        if(modelGroupParticle.isRepeatable())
+                        {
+                           startRepeatableParticle(startName, modelGroupParticle);
+                        }
+
                         ParticleHandler handler = getHandler(modelGroupParticle);
                         o = handler.startParticle(o, startName, modelGroupParticle, atts, nsRegistry);
                         push(cursor, o);
@@ -263,7 +268,7 @@
                   continue;
                }
 
-               int prevOccurence = cursor.getOccurence();
+               //int prevOccurence = cursor.getOccurence();
                ParticleBinding prevParticle = cursor.isPositioned() ? cursor.getCurrentParticle() : null;
                List newCursors = cursor.startElement(startName, atts);
                if(newCursors.isEmpty())
@@ -283,10 +288,11 @@
 
                      if(curParticle.isRepeatable())
                      {
-                        startRepeatableParticle(curParticle);
+                        startRepeatableParticle(startName, curParticle);
                      }
                   }
 
+/*
                   if(cursor.getOccurence() - prevOccurence > 0 || item.ended)
                   {
                      endParticle(item, startName, 1);
@@ -298,6 +304,7 @@
                      item.reset();
                      item.o = o;
                   }
+*/
 
                   // push all except the last one
                   Object o = item.o;
@@ -393,7 +400,7 @@
 
          if(!repeated && particle.isRepeatable())
          {
-            startRepeatableParticle(particle);
+            startRepeatableParticle(startName, particle);
          }
 
          TypeBinding type = element.getType();
@@ -561,14 +568,50 @@
       }
    }
 
-   private void startRepeatableParticle(ParticleBinding particle)
+   private void startRepeatableParticle(QName startName, ParticleBinding particle)
    {
       //System.out.println(" start repeatable particle: " + particle.getTerm());
+/*
+      StackItem item = stack.peek();
+
+      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);
+
+      TermBinding term = particle.getTerm();
+      ParticleHandler handler = null;
+      if(term.isModelGroup())
+      {
+         handler = getHandler(particle);
+      }
+      else
+      {
+         ElementBinding el = (ElementBinding)term;
+         handler = el.getType().getHandler();
+         if(handler == null)
+         {
+            handler = defParticleHandler;
+         }
+
+      }
+
+      setParent(handler, item.tmp, item.o, item.repeatbleParticleName, particle, item.particle);
+
+      item.o = item.tmp;
+      item.tmp = null;
+      item.repeatbleParticleName = null;
+*/
    }
 
    private void endParticle(StackItem item, QName qName, int parentStackPos)
@@ -947,6 +990,8 @@
       final ModelGroupBinding.Cursor cursor;
       final ParticleBinding particle;
       Object o;
+      //Object tmp;
+      //QName repeatbleParticleName;
       StringBuffer textContent;
       boolean ended;
 




More information about the jboss-svn-commits mailing list