[jboss-svn-commits] JBoss Common SVN: r2113 - 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 Oct 9 18:12:37 EDT 2006
Author: alex.loubyansky at jboss.com
Date: 2006-10-09 18:12:34 -0400 (Mon, 09 Oct 2006)
New Revision: 2113
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/TypeBinding.java
jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/XsdBinder.java
Log:
removed TypeBinding.[set/has]Wildcard(). XsdBinder threw NPE while binding wildcards that were children of global model groups
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-10-09 22:09:40 UTC (rev 2112)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/SundayContentHandler.java 2006-10-09 22:12:34 UTC (rev 2113)
@@ -980,7 +980,7 @@
}
}
else if(parentParticle != null &&
- ((ElementBinding)parentParticle.getTerm()).getType().hasWildcard() &&
+ ((ElementBinding)parentParticle.getTerm()).getType().getWildcard() != null &&
stack.size() > 1)
{
// the parent has anyType, so it gets the value of its child
@@ -1148,7 +1148,7 @@
list.clear();
}
- public void push(Object o)
+ public void push(StackItem o)
{
list.add(o);
}
Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/TypeBinding.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/TypeBinding.java 2006-10-09 22:09:40 UTC (rev 2112)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/TypeBinding.java 2006-10-09 22:12:34 UTC (rev 2113)
@@ -444,21 +444,23 @@
this.startElementCreatesObject = startElementCreatesObject ? Boolean.TRUE : Boolean.FALSE;
}
- public void setWildcard(WildcardBinding wildcard)
- {
- this.wildcard = wildcard;
- }
-
+ private boolean initializedWildcard;
public WildcardBinding getWildcard()
{
+ if(initializedWildcard)
+ {
+ return wildcard;
+ }
+
+ if(particle != null)
+ {
+ wildcard = getWildcard(particle.getTerm());
+ initializedWildcard = true;
+ }
+
return wildcard;
}
- public boolean hasWildcard()
- {
- return wildcard != null;
- }
-
public ParticleBinding getParticle()
{
return particle;
@@ -568,4 +570,31 @@
{
return super.toString() + "[" + qName + "]";
}
+
+ private static WildcardBinding getWildcard(TermBinding term)
+ {
+ if(term.isWildcard())
+ {
+ return (WildcardBinding) term;
+ }
+
+ if(term.isModelGroup())
+ {
+ ModelGroupBinding group = (ModelGroupBinding) term;
+ for(Iterator i = group.getParticles().iterator(); i.hasNext();)
+ {
+ term = ((ParticleBinding)i.next()).getTerm();
+ if(term.isWildcard())
+ {
+ return (WildcardBinding)term;
+ }
+ else if(term.isModelGroup())
+ {
+ return getWildcard(term);
+ }
+ }
+ }
+
+ return null;
+ }
}
Modified: jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/XsdBinder.java
===================================================================
--- jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/XsdBinder.java 2006-10-09 22:09:40 UTC (rev 2112)
+++ jbossxb/trunk/src/main/java/org/jboss/xb/binding/sunday/unmarshalling/XsdBinder.java 2006-10-09 22:12:34 UTC (rev 2113)
@@ -933,15 +933,6 @@
particleBinding.setMinOccurs(particle.getMinOccurs());
group.addParticle(particleBinding);
- TypeBinding type = ctx.peekType();
- type.setWildcard(binding);
-
- if (ctx.trace)
- {
- log.trace("added wildcard to " + group);
- log.trace("added wildcard to type " + type.getQName());
- }
-
XSWildcard wildcard = (XSWildcard)particle.getTerm();
if(wildcard.getName() != null)
{
More information about the jboss-svn-commits
mailing list