gdaniels    2002/06/21 13:50:16

  Modified:    java/src/org/apache/axis/message SOAPHandler.java
                        HeaderBuilder.java BodyBuilder.java
  Removed:     java/src/org/apache/axis/message HeaderElementBuilder.java
  Log:
  Simplify, simplify...
  
  Redo the fix dims made, but without the extra class.  The problem was that
  SOAPHandler wasn't pushing the associated MessageElement during
  startElement() if it existed prior to the startElement() call.  Now we always
  do it, which also eliminated the need to manually push the BodyElement
  in BodyBuilder.onStartChild().
  
  Eventually, this mechanism (pushing new MessageElements) might move
  entirely out of the SOAPHandler's realm of responsibility, so that the
  framework (DeserializaitonContextImpl) just deals with it.
  
  Revision  Changes    Path
  1.8       +1 -1      xml-axis/java/src/org/apache/axis/message/SOAPHandler.java
  
  Index: SOAPHandler.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/SOAPHandler.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- SOAPHandler.java  24 May 2002 18:20:43 -0000      1.7
  +++ SOAPHandler.java  21 Jun 2002 20:50:16 -0000      1.8
  @@ -77,8 +77,8 @@
           if (!context.isDoneParsing()) {
               if (myElement == null) {
                   myElement = makeNewElement(namespace, localName, qName, attributes, 
context);
  -                context.pushNewElement(myElement);
               }
  +            context.pushNewElement(myElement);
           }
       }
   
  
  
  
  1.13      +25 -9     xml-axis/java/src/org/apache/axis/message/HeaderBuilder.java
  
  Index: HeaderBuilder.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/HeaderBuilder.java,v
  retrieving revision 1.12
  retrieving revision 1.13
  diff -u -r1.12 -r1.13
  --- HeaderBuilder.java        21 Jun 2002 13:00:37 -0000      1.12
  +++ HeaderBuilder.java        21 Jun 2002 20:50:16 -0000      1.13
  @@ -66,26 +66,30 @@
   import org.xml.sax.Attributes;
   import org.xml.sax.SAXException;
   
  -public class HeaderBuilder extends SOAPHandler {
  +public class HeaderBuilder extends SOAPHandler
  +{
       protected static Log log =
  -            LogFactory.getLog(HeaderBuilder.class.getName());
  +        LogFactory.getLog(HeaderBuilder.class.getName());
   
  +    private SOAPHeaderElement header;
       private SOAPEnvelope envelope;
   
  -    HeaderBuilder(SOAPEnvelope envelope) {
  +    HeaderBuilder(SOAPEnvelope envelope)
  +    {
           this.envelope = envelope;
       }
   
       public void startElement(String namespace, String localName,
                                String qName, Attributes attributes,
                                DeserializationContext context)
  -            throws SAXException {
  +        throws SAXException
  +    {
           if (!context.isDoneParsing()) {
               if (myElement == null) {
                   myElement = new SOAPHeader(namespace, localName, qName,
  -                        attributes, context,
  -                        envelope.getSOAPConstants());
  -                envelope.setHeader((SOAPHeader) myElement);
  +                                           attributes, context,
  +                                           envelope.getSOAPConstants());
  +                envelope.setHeader((SOAPHeader)myElement);
               }
               context.pushNewElement(myElement);
           }
  @@ -96,8 +100,20 @@
                                       String prefix,
                                       Attributes attributes,
                                       DeserializationContext context)
  -            throws SAXException {
  -        HeaderElementBuilder handler = new HeaderElementBuilder((SOAPHeader) 
myElement);
  +        throws SAXException
  +    {
  +        header = new SOAPHeaderElement(namespace, localName, prefix,
  +                                       attributes, context);
  +
  +        SOAPHandler handler = new SOAPHandler();
  +        handler.myElement = header;
  +
           return handler;
  +    }
  +
  +    public void onEndChild(String namespace, String localName,
  +                           DeserializationContext context)
  +    {
  +        envelope.addHeader(header);
       }
   }
  
  
  
  1.38      +1 -1      xml-axis/java/src/org/apache/axis/message/BodyBuilder.java
  
  Index: BodyBuilder.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/message/BodyBuilder.java,v
  retrieving revision 1.37
  retrieving revision 1.38
  diff -u -r1.37 -r1.38
  --- BodyBuilder.java  21 Jun 2002 19:48:40 -0000      1.37
  +++ BodyBuilder.java  21 Jun 2002 20:50:16 -0000      1.38
  @@ -202,7 +202,7 @@
   
           handler.myElement = element;
   
  -        context.pushNewElement(element);
  +        //context.pushNewElement(element);
   
           if (log.isDebugEnabled()) {
               log.debug("Exit: BodyBuilder::onStartChild()");
  
  
  


Reply via email to