[jboss-svn-commits] JBoss Common SVN: r2148 - in jbossxb/branches/as405/src: main/java/org/jboss/xb/binding/sunday/xop test/java/org/jboss/test/xml
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Thu Oct 26 08:47:32 EDT 2006
Author: alex.loubyansky at jboss.com
Date: 2006-10-26 08:47:27 -0400 (Thu, 26 Oct 2006)
New Revision: 2148
Modified:
jbossxb/branches/as405/src/main/java/org/jboss/xb/binding/sunday/xop/XOPElementHandler.java
jbossxb/branches/as405/src/main/java/org/jboss/xb/binding/sunday/xop/XOPIncludeHandler.java
jbossxb/branches/as405/src/test/java/org/jboss/test/xml/XOPUnitTestCase.java
Log:
XOPElementHandler should always return an instance of XOPElement in case XOP is enabled
Modified: jbossxb/branches/as405/src/main/java/org/jboss/xb/binding/sunday/xop/XOPElementHandler.java
===================================================================
--- jbossxb/branches/as405/src/main/java/org/jboss/xb/binding/sunday/xop/XOPElementHandler.java 2006-10-26 12:26:42 UTC (rev 2147)
+++ jbossxb/branches/as405/src/main/java/org/jboss/xb/binding/sunday/xop/XOPElementHandler.java 2006-10-26 12:47:27 UTC (rev 2148)
@@ -50,7 +50,7 @@
}
else
{
- return parent == null ? new XOPElement() : parent;
+ return new XOPElement();
}
}
@@ -69,7 +69,8 @@
{
return;
}
-
+
+ // should actually use the handler that would normally be used by the SundayContentHandler
DefaultHandlers.ELEMENT_HANDLER.setParent(parent, o, elementName, particle, parentParticle);
}
Modified: jbossxb/branches/as405/src/main/java/org/jboss/xb/binding/sunday/xop/XOPIncludeHandler.java
===================================================================
--- jbossxb/branches/as405/src/main/java/org/jboss/xb/binding/sunday/xop/XOPIncludeHandler.java 2006-10-26 12:26:42 UTC (rev 2147)
+++ jbossxb/branches/as405/src/main/java/org/jboss/xb/binding/sunday/xop/XOPIncludeHandler.java 2006-10-26 12:47:27 UTC (rev 2148)
@@ -28,7 +28,6 @@
import javax.xml.namespace.QName;
import org.jboss.xb.binding.Constants;
import org.jboss.xb.binding.JBossXBRuntimeException;
-import org.jboss.xb.binding.sunday.unmarshalling.DefaultHandlers;
import org.jboss.xb.binding.sunday.unmarshalling.ElementBinding;
import org.jboss.xb.binding.sunday.unmarshalling.ParticleBinding;
import org.jboss.xb.binding.sunday.unmarshalling.ParticleHandler;
@@ -130,8 +129,7 @@
}
else
{
- ElementBinding parentElement = (ElementBinding)parentParticle.getTerm();
- DefaultHandlers.ELEMENT_HANDLER.setParent(parent, o, parentElement.getQName(), particle, parentParticle);
+ throw new JBossXBRuntimeException("Expected XOPElement as a parent but got " + parent + " for element " + elementName);
}
}
}
Modified: jbossxb/branches/as405/src/test/java/org/jboss/test/xml/XOPUnitTestCase.java
===================================================================
--- jbossxb/branches/as405/src/test/java/org/jboss/test/xml/XOPUnitTestCase.java 2006-10-26 12:26:42 UTC (rev 2147)
+++ jbossxb/branches/as405/src/test/java/org/jboss/test/xml/XOPUnitTestCase.java 2006-10-26 12:47:27 UTC (rev 2148)
@@ -24,7 +24,15 @@
import org.jboss.xb.binding.Unmarshaller;
import org.jboss.xb.binding.UnmarshallerFactory;
import org.jboss.xb.binding.sunday.marshalling.MarshallerImpl;
-import org.jboss.xb.binding.sunday.unmarshalling.*;
+import org.jboss.xb.binding.sunday.unmarshalling.DefaultSchemaResolver;
+import org.jboss.xb.binding.sunday.unmarshalling.ElementBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.ParticleBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.SchemaBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.SequenceBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.TermBeforeSetParentCallback;
+import org.jboss.xb.binding.sunday.unmarshalling.TypeBinding;
+import org.jboss.xb.binding.sunday.unmarshalling.UnmarshallingContext;
+import org.jboss.xb.binding.sunday.unmarshalling.XsdBinder;
import org.jboss.xb.binding.sunday.xop.XOPMarshaller;
import org.jboss.xb.binding.sunday.xop.XOPObject;
import org.jboss.xb.binding.sunday.xop.XOPUnmarshaller;
@@ -34,7 +42,9 @@
import javax.xml.transform.Source;
import javax.xml.namespace.QName;
import javax.activation.DataSource;
-import java.awt.*;
+
+import java.awt.Graphics;
+import java.awt.Image;
import java.awt.image.ImageObserver;
import java.awt.image.ImageProducer;
import java.io.FileInputStream;
@@ -296,13 +306,10 @@
child.setBeforeSetParentCallback(callback);
}
- // ---------------------------------------------------
-
- TermBeforeSetParentCallback interceptXOPUnmarshallerResults = new TermBeforeSetParentCallback()
+ TermBeforeSetParentCallback xmimeBase64Callback = new TermBeforeSetParentCallback()
{
public Object beforeSetParent(Object o, UnmarshallingContext ctx)
{
-
ElementBinding e = (ElementBinding) ctx.getParticle().getTerm();
Class propType = ctx.resolvePropertyType();
@@ -311,21 +318,23 @@
String localPart = e.getQName().getLocalPart();
if("xopContent".equals(localPart))
{
- System.out.println("! xopContent handle on "+ e.getQName());
assertEquals(String.class, propType);
+ if(propType.equals(String.class))
+ {
+ o = new String( (byte[])o);
+ }
}
+/* alexey: this is never the case
else if("Include".equals(localPart))
{
- System.out.println("! include handle on "+ e.getQName());
assertEquals(String.class, propType);
-
assertTrue( (o instanceof byte[]));
// Type conversion required
if(propType.equals(String.class))
o = new String( (byte[])o);
}
-
+*/
return o;
}
};
@@ -334,8 +343,12 @@
TypeBinding xmimeBase64Type = SCHEMA.getType(new QName("http://www.w3.org/2005/05/xmlmime", "base64Binary"));
if(xmimeBase64Type!=null)
{
- xmimeBase64Type.setBeforeSetParentCallback( interceptXOPUnmarshallerResults );
+ xmimeBase64Type.setBeforeSetParentCallback( xmimeBase64Callback );
+ // alexey: the following shouldn't be used.
+ // callbacks should be set on the types and/or elements
+ // that can have xop:Include as their content
+
// xop:Include
// Uncomment the following lines in order to intercept the
// XOPUnmarshaller result _before_ the actual setter is invoked
More information about the jboss-svn-commits
mailing list