sboag       00/11/15 10:09:07

  Modified:    java/src/org/apache/xalan/processor StylesheetHandler.java
               java/src/org/apache/xalan/templates ElemTemplateElement.java
                        StylesheetComposed.java TemplateList.java
  Log:
  Add document order indexes to ElemTemplateElements, as per
  discussions with Gary P., and pass them into TemplateList#setTemplate.
  
  Revision  Changes    Path
  1.23      +4 -0      
xml-xalan/java/src/org/apache/xalan/processor/StylesheetHandler.java
  
  Index: StylesheetHandler.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/processor/StylesheetHandler.java,v
  retrieving revision 1.22
  retrieving revision 1.23
  diff -u -r1.22 -r1.23
  --- StylesheetHandler.java    2000/11/15 02:35:06     1.22
  +++ StylesheetHandler.java    2000/11/15 18:08:59     1.23
  @@ -1175,6 +1175,8 @@
         return null;
       }
     }
  +  
  +  private int m_docOrderCount = 0;
   
     /**
      * Push the current XSLTElementProcessor to the top of the stack.
  @@ -1183,6 +1185,8 @@
      */
     void pushElemTemplateElement(ElemTemplateElement elem)
     {
  +    if(elem.getUid() == -1)
  +      elem.setUid(m_docOrderCount++);
       m_elems.push(elem);
     }
   
  
  
  
  1.22      +23 -0     
xml-xalan/java/src/org/apache/xalan/templates/ElemTemplateElement.java
  
  Index: ElemTemplateElement.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemTemplateElement.java,v
  retrieving revision 1.21
  retrieving revision 1.22
  diff -u -r1.21 -r1.22
  --- ElemTemplateElement.java  2000/11/13 16:27:10     1.21
  +++ ElemTemplateElement.java  2000/11/15 18:09:02     1.22
  @@ -942,6 +942,29 @@
         throw new TransformerException(se);
       }
     }
  +  
  +  protected int m_docOrderNumber = -1;
  +  
  +  /**
  +   * Set the UID (document order index).
  +   *
  +   * @param kIndex Index of this child.
  +   */
  +  public void setUid(int i)
  +  {
  +    m_docOrderNumber = i;
  +  }
  +
  +  /**
  +   * Get the UID (document order index).
  +   *
  +   * @return Index of this child
  +   */
  +  public int getUid()
  +  {
  +    return m_docOrderNumber;
  +  }
  +
   
     /**
      * Parent node.
  
  
  
  1.17      +4 -3      
xml-xalan/java/src/org/apache/xalan/templates/StylesheetComposed.java
  
  Index: StylesheetComposed.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/templates/StylesheetComposed.java,v
  retrieving revision 1.16
  retrieving revision 1.17
  diff -u -r1.16 -r1.17
  --- StylesheetComposed.java   2000/11/13 16:27:11     1.16
  +++ StylesheetComposed.java   2000/11/15 18:09:02     1.17
  @@ -350,7 +350,7 @@
   
           XPath match = included.getStripSpace(i);
   
  -        m_whiteSpaceInfoList.setTemplate(new WhiteSpaceInfo(match, true));
  +        m_whiteSpaceInfoList.setTemplate(new WhiteSpaceInfo(match, true), 
i+k);
         }
   
         n = included.getPreserveSpaceCount();
  @@ -362,7 +362,7 @@
   
           XPath match = included.getPreserveSpace(i);
   
  -        m_whiteSpaceInfoList.setTemplate(new WhiteSpaceInfo(match, false));
  +        m_whiteSpaceInfoList.setTemplate(new WhiteSpaceInfo(match, false), 
i+k);
         }
       }
     }
  @@ -688,7 +688,8 @@
   
         for (int i = 0; i < n; i++)
         {
  -        m_templateList.setTemplate(included.getTemplate(i));
  +        ElemTemplate template = included.getTemplate(i);
  +        m_templateList.setTemplate(template, template.getUid());
         }
       }
   
  
  
  
  1.20      +1 -34     
xml-xalan/java/src/org/apache/xalan/templates/TemplateList.java
  
  Index: TemplateList.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xalan/templates/TemplateList.java,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- TemplateList.java 2000/11/13 16:27:11     1.19
  +++ TemplateList.java 2000/11/15 18:09:02     1.20
  @@ -99,41 +99,8 @@
      *
      * @param template
      */
  -  public void setTemplate(ElemTemplate template)
  +  public void setTemplate(ElemTemplate template, int pos)
     {
  -
  -    int pos = 0;
  -
  -    if (null == m_firstTemplate)
  -    {
  -      m_firstTemplate = template;
  -    }
  -    else
  -    {
  -      ElemTemplateElement next = m_firstTemplate;
  -
  -      while (null != next)
  -      {
  -        if (null == next.m_nextSibling)
  -        {
  -          next.m_nextSibling = template;
  -          template.m_nextSibling = null;  // just to play it safe.
  -
  -          break;
  -        }
  -        else if (template.equals(next.m_nextSibling))
  -        {
  -          pos++;
  -
  -          break;
  -        }
  -
  -        pos++;
  -
  -        next = next.m_nextSibling;
  -      }
  -    }
  -
       if (null != template.getName())
       {
         if (m_namedTemplates.get(template.getName()) == null)
  
  
  

Reply via email to