snichol 2003/01/08 11:57:24
Modified: java/src/org/apache/soap/encoding SOAPMappingRegistry.java
Log:
Provide mappings so that null DataHandlers can be serialized and
de-serialized.
Revision Changes Path
1.37 +44 -20
xml-soap/java/src/org/apache/soap/encoding/SOAPMappingRegistry.java
Index: SOAPMappingRegistry.java
===================================================================
RCS file:
/home/cvs/xml-soap/java/src/org/apache/soap/encoding/SOAPMappingRegistry.java,v
retrieving revision 1.36
retrieving revision 1.37
diff -u -r1.36 -r1.37
--- SOAPMappingRegistry.java 28 Nov 2002 00:32:51 -0000 1.36
+++ SOAPMappingRegistry.java 8 Jan 2003 19:57:24 -0000 1.37
@@ -92,6 +92,7 @@
private static String soapEncURI = Constants.NS_URI_SOAP_ENC;
private static QName arrayQName = new QName(soapEncURI, "Array");
+ private static QName dataHandlerQName = new QName(Constants.NS_URI_XML_SOAP,
"DataHandler");
// create all the standard serializers/deserializers as static vars.
// these fill into all the various base registries.
@@ -149,10 +150,10 @@
Constants.qName1999QName,
Constants.date1999QName,
Constants.timeInst1999QName,
- Constants.object1999QName,
- Constants.object1999QName,
- Constants.object1999QName,
- Constants.object1999QName,
+ dataHandlerQName, // for null DataHandler
+ dataHandlerQName, // for null DataHandler
+ dataHandlerQName, // for null DataHandler
+ dataHandlerQName, // for null DataHandler
Constants.object1999QName,
};
@@ -177,10 +178,10 @@
Constants.qName2000QName,
Constants.date2000QName,
Constants.timeInst2000QName,
- Constants.object2000QName,
- Constants.object2000QName,
- Constants.object2000QName,
- Constants.object2000QName,
+ dataHandlerQName, // for null DataHandler
+ dataHandlerQName, // for null DataHandler
+ dataHandlerQName, // for null DataHandler
+ dataHandlerQName, // for null DataHandler
Constants.object2000QName,
};
@@ -205,10 +206,10 @@
Constants.qName2001QName,
Constants.date2001QName,
Constants.timeInst2001QName,
- Constants.object2001QName,
- Constants.object2001QName,
- Constants.object2001QName,
- Constants.object2001QName,
+ dataHandlerQName, // for null DataHandler
+ dataHandlerQName, // for null DataHandler
+ dataHandlerQName, // for null DataHandler
+ dataHandlerQName, // for null DataHandler
Constants.object2001QName,
};
@@ -303,10 +304,10 @@
qNameSer,
calSer,
dateSer,
- null,
- null,
- null,
- null,
+ null, // MimeBodyPart
+ null, // InputStream
+ null, // DataSource
+ partSer, // for null DataHandler
objDeser,
};
@@ -624,12 +625,23 @@
protected Serializer querySerializer_(Class javaType,
String encodingStyleURI)
{
- Serializer s = super.querySerializer_(javaType, encodingStyleURI);
+ Serializer s = super.querySerializerNoDefault_(javaType, encodingStyleURI);
if (s != null) {
return s;
}
if (parent != null) {
- s = parent.querySerializer_(javaType, encodingStyleURI);
+ s = parent.querySerializerNoDefault_(javaType, encodingStyleURI);
+ if (s != null) {
+ return s;
+ }
+ }
+
+ s = super.querySerializerNoDefault_(null, encodingStyleURI);
+ if (s != null) {
+ return s;
+ }
+ if (parent != null) {
+ s = parent.querySerializerNoDefault_(null, encodingStyleURI);
if (s != null) {
return s;
}
@@ -653,16 +665,28 @@
protected Deserializer queryDeserializer_(QName elementType,
String encodingStyleURI)
{
- Deserializer ds = super.queryDeserializer_(elementType, encodingStyleURI);
+ Deserializer ds = super.queryDeserializerNoDefault_(elementType,
encodingStyleURI);
if (ds != null) {
return ds;
}
if (parent != null) {
- ds = parent.queryDeserializer_(elementType, encodingStyleURI);
+ ds = parent.queryDeserializerNoDefault_(elementType, encodingStyleURI);
if (ds != null) {
return ds;
}
}
+
+ ds = super.queryDeserializerNoDefault_(null, encodingStyleURI);
+ if (ds != null) {
+ return ds;
+ }
+ if (parent != null) {
+ ds = parent.queryDeserializerNoDefault_(null, encodingStyleURI);
+ if (ds != null) {
+ return ds;
+ }
+ }
+
return null;
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>