[jboss-svn-commits] JBoss Common SVN: r4183 - in jbossxb/trunk/src: test/java/org/jboss/test/xb/builder and 1 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Wed Mar 17 11:20:53 EDT 2010
Author: alex.loubyansky at jboss.com
Date: 2010-03-17 11:20:52 -0400 (Wed, 17 Mar 2010)
New Revision: 4183
Modified:
jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/impl/runtime/RtElementHandler.java
jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/AbstractBuilderTest.java
jbossxb/trunk/src/test/java/org/jboss/test/xml/WildcardUnresolvedElementsUnitTestCase.java
Log:
JBXB-243
Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/impl/runtime/RtElementHandler.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/impl/runtime/RtElementHandler.java 2010-03-17 15:17:33 UTC (rev 4182)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/impl/runtime/RtElementHandler.java 2010-03-17 15:20:52 UTC (rev 4183)
@@ -118,7 +118,7 @@
log.trace("setParent " + qName + " parent=" + parent + " object=" + o + " term=" + term);
}
- TermBinding parentTerm = parentParticle.getTerm();
+ final TermBinding parentTerm = parentParticle.getTerm();
if(term.isMapEntryKey())
{
@@ -248,18 +248,7 @@
}
// the wildcard this element is a content of
- WildcardBinding wildcard = null;
- if(parentTerm != null && parentTerm.isElement())
- {
- ElementBinding parentElement = (ElementBinding)parentTerm;
- TypeBinding parentType = parentElement.getType();
- wildcard = parentType.getWildcard();
- // there should be a better way of checking this
- if(wildcard != null && parentType.getElement(qName) != null)
- {
- wildcard = null;
- }
- }
+ WildcardBinding wildcard = parentTerm.isWildcard() ? (WildcardBinding) parentTerm : null;
if(owner instanceof ValueList)
{
@@ -312,8 +301,9 @@
if (trace)
log.trace("setParent " + qName + " metadata set " + propName);
+ boolean repeatable = particle.isRepeatable() || wildcard != null && parentParticle.isRepeatable();
// TODO with RepeatableParticleHandler.NOOP check for Collection should be commented out
- if(particle.isRepeatable() && !(o instanceof Collection))
+ if(repeatable && !(o instanceof Collection))
{
RtUtil.add(owner, o, propName, colType,
term.getSchema().isIgnoreUnresolvedFieldOrClass(),
Modified: jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/AbstractBuilderTest.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/AbstractBuilderTest.java 2010-03-17 15:17:33 UTC (rev 4182)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xb/builder/AbstractBuilderTest.java 2010-03-17 15:20:52 UTC (rev 4183)
@@ -125,13 +125,13 @@
{
TestSchemaResolver resolver = new TestSchemaResolver();
- SchemaBinding schemaBinding = JBossXBBuilder.build(reference);
+ SchemaBinding schemaBinding = JBossXBBuilder.build(reference, true);
resolver.addSchemaBinding(schemaBinding);
if (others != null)
{
for (Class<?> other : others)
{
- SchemaBinding otherBinding = JBossXBBuilder.build(other);
+ SchemaBinding otherBinding = JBossXBBuilder.build(other, true);
resolver.addSchemaBinding(otherBinding);
}
}
Modified: jbossxb/trunk/src/test/java/org/jboss/test/xml/WildcardUnresolvedElementsUnitTestCase.java
===================================================================
--- jbossxb/trunk/src/test/java/org/jboss/test/xml/WildcardUnresolvedElementsUnitTestCase.java 2010-03-17 15:17:33 UTC (rev 4182)
+++ jbossxb/trunk/src/test/java/org/jboss/test/xml/WildcardUnresolvedElementsUnitTestCase.java 2010-03-17 15:20:52 UTC (rev 4183)
@@ -57,6 +57,7 @@
import org.jboss.xb.binding.sunday.unmarshalling.TypeBinding;
import org.jboss.xb.binding.sunday.unmarshalling.WildcardBinding;
import org.jboss.xb.binding.sunday.unmarshalling.XsdBinder;
+import org.jboss.xb.binding.sunday.unmarshalling.impl.runtime.RtElementHandler;
import org.jboss.xb.util.DomCharactersHandler;
import org.jboss.xb.util.DomLocalMarshaller;
import org.jboss.xb.util.DomParticleHandler;
@@ -273,32 +274,7 @@
}
else
{
- unresolvedElementHandler = new DomParticleHandler()
- {
- public void setParent(Object parent, Object o, QName elementName, ParticleBinding particle,
- ParticleBinding parentParticle)
- {
- if (parent instanceof Element)
- {
- ((Element) parent).appendChild((Element) o);
- }
- else
- {
- ArrayOfAny arr = (ArrayOfAny)parent;
- Object[] any = arr.get_any();
- if(any == null)
- any = new Object[1];
- else
- {
- Object[] tmp = any;
- any = new Object[any.length + 1];
- System.arraycopy(tmp, 0, any, 0, tmp.length);
- }
- arr.set_any(any);
- any[any.length - 1] = o;
- }
- }
- };
+ unresolvedElementHandler = DomParticleHandler.INSTANCE;
unresolvedCharactersHandler = DomCharactersHandler.INSTANCE;
}
@@ -890,6 +866,7 @@
}
public static class GenericElementHandler
+ extends RtElementHandler
implements ParticleHandler
{
public Object startParticle(Object parent,
@@ -923,24 +900,9 @@
ParticleBinding parentParticle)
{
if(parent instanceof GenericElement)
- {
((GenericElement)parent).addChild((GenericElement)o);
- }
else
- {
- ArrayOfAny arr = (ArrayOfAny)parent;
- Object[] any = arr.get_any();
- if(any == null)
- any = new Object[1];
- else
- {
- Object[] tmp = any;
- any = new Object[any.length + 1];
- System.arraycopy(tmp, 0, any, 0, tmp.length);
- }
- arr.set_any(any);
- any[any.length - 1] = o;
- }
+ super.setParent(parent, o, elementName, particle, parentParticle);
}
}
}
More information about the jboss-svn-commits
mailing list