sboag       00/10/17 12:17:09

  Modified:    java/src/org/apache/xalan/transformer ResultTreeHandler.java
  Log:
  Changed some method calling to property access on queued events.
  Pass false instead of true for flush for the default startPrefix mapping,
  which seemed to fix the namespace bug (more testing needed).
  
  Revision  Changes    Path
  1.20      +29 -15    
xml-xalan/java/src/org/apache/xalan/transformer/ResultTreeHandler.java
  
  Index: ResultTreeHandler.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/transformer/ResultTreeHandler.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- ResultTreeHandler.java    2000/10/13 23:38:22     1.19
  +++ ResultTreeHandler.java    2000/10/17 19:17:07     1.20
  @@ -105,12 +105,28 @@
     private static final boolean DEBUG = false;
     
     /**
  +   * Null constructor for object pooling.
  +   */
  +  public ResultTreeHandler()
  +  {
  +  }
  +    
  +  /**
      * Create a new result tree handler.  The real content 
      * handler will be the ContentHandler passed as an argument.
      */
     public ResultTreeHandler(TransformerImpl transformer,
                              ContentHandler realHandler)
     {
  +    init(transformer, realHandler);
  +  }
  +  
  +  /**
  +   * Initializer method.
  +   */
  +  public void init(TransformerImpl transformer,
  +                           ContentHandler realHandler)
  +  {
       m_transformer = transformer;
       m_tracer = transformer.getTraceManager();
       m_contentHandler = realHandler;
  @@ -238,7 +254,7 @@
     public void startPrefixMapping (String prefix, String uri)
       throws SAXException
     {    
  -    startPrefixMapping (prefix, uri, true);
  +    startPrefixMapping (prefix, uri, false);
     }
     
     public void startPrefixMapping (String prefix, String uri, boolean 
shouldFlush)
  @@ -295,11 +311,12 @@
       throws SAXException
     {
       QueuedStartDocument qsd = getQueuedDoc();
  -    if((null != qsd) && qsd.isPending() 
  +    if((null != qsd) && qsd.isPending 
          && XMLCharacterRecognizer.isWhiteSpace(ch, start, length))
         return;
       
       flushPending(EVT_CHARACTERS);    
  +        
       getContentHandler().characters(ch, start, length);
       m_tracer.fireGenerateEvent(new GenerateEvent(m_transformer,
                                                    
GenerateEvent.EVENTTYPE_CHARACTERS,
  @@ -313,7 +330,7 @@
       throws SAXException
     {
       QueuedStartDocument qsd = getQueuedDoc();
  -    if((null != qsd) && qsd.isPending() 
  +    if((null != qsd) && qsd.isPending 
          && XMLCharacterRecognizer.isWhiteSpace(ch, start, length))
         return;
   
  @@ -569,12 +586,12 @@
       QueuedStartElement qe = getQueuedElem();
       QueuedStartDocument qdab = getQueuedDocAtBottom();
       
  -    if ((type != EVT_STARTPREFIXMAPPING) && qdab.isPending())
  +    if ((type != EVT_STARTPREFIXMAPPING) && qdab.isPending)
       {
         qdab.flush();
       }
   
  -    if ((null != qe) && qe.isPending())
  +    if ((null != qe) && qe.isPending)
       {
         if(!qe.nsDeclsHaveBeenAdded())
           addNSDeclsToAttrs();
  @@ -607,16 +624,11 @@
     /**
      * Clone an element with or without children.
      */
  -  public void cloneToResultTree(Stylesheet stylesheetTree, Node node,
  -                                boolean shouldCloneWithChildren,
  -                                boolean overrideStrip,
  +  public void cloneToResultTree(Node node,
                                   boolean shouldCloneAttributes)
       throws SAXException
     {
  -    m_cloner.cloneToResultTree(stylesheetTree, node,
  -                               shouldCloneWithChildren,
  -                               overrideStrip,
  -                               shouldCloneAttributes);
  +    m_cloner.cloneToResultTree(node, shouldCloneAttributes);
     } 
     
     /**
  @@ -690,7 +702,7 @@
       throws SAXException
     {
       QueuedStartDocument qdab = getQueuedDocAtBottom();
  -    if(qdab.isPending())
  +    if(qdab.isPending)
       {
         SerializerSwitcher.switchSerializerIfHTML(m_transformer, ns, 
localName);
       }
  @@ -886,6 +898,8 @@
         addNSDeclsToAttrs();
       
       ensurePrefixIsDeclared(uri, rawName);
  +    if(DEBUG)
  +      System.out.println("Adding attr: "+localName+", "+uri);
       qe.addAttribute(uri, localName, rawName, type, value);
     }
     
  @@ -943,7 +957,7 @@
     public boolean isElementPending()
     {
       QueuedStartElement qse = getQueuedElem();
  -    return (null != qse) ? qse.isPending() : false;
  +    return (null != qse) ? qse.isPending : false;
     }
   
     /**
  @@ -978,7 +992,7 @@
     /**
      * This class clones nodes to the result tree.
      */
  -  private ClonerToResultTree m_cloner;
  +  ClonerToResultTree m_cloner;
     
     /**
      * Trace manager for debug support.
  
  
  

Reply via email to