[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