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]>

Reply via email to