You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by sb...@locus.apache.org on 2000/10/17 21:05:37 UTC

cvs commit: xml-xalan/java/src/org/apache/xalan/templates ElemValueOf.java

sboag       00/10/17 12:05:37

  Modified:    java/src/org/apache/xalan/templates ElemValueOf.java
  Log:
  Remove isDot optimization, generally clean up the code.
  
  Revision  Changes    Path
  1.4       +16 -70    xml-xalan/java/src/org/apache/xalan/templates/ElemValueOf.java
  
  Index: ElemValueOf.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xalan/templates/ElemValueOf.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- ElemValueOf.java	2000/10/02 02:43:07	1.3
  +++ ElemValueOf.java	2000/10/17 19:05:37	1.4
  @@ -65,6 +65,7 @@
   import org.apache.xalan.utils.QName;
   import org.apache.xalan.res.XSLTErrorResources;
   import org.apache.xalan.transformer.TransformerImpl;
  +import org.apache.xalan.transformer.ResultTreeHandler;
   
   /**
    * <meta name="usage" content="advanced"/>
  @@ -158,11 +159,6 @@
       return m_disableOutputEscaping;
     }
     
  -  /**
  -   * Optimization to tell if pattern is a simple ".".
  -   */
  -  private boolean isDot = false;
  -
     /** 
      * Get an integer representation of the element type.
      * 
  @@ -202,75 +198,25 @@
       if(TransformerImpl.S_DEBUG)
         transformer.getTraceManager().fireTraceEvent(sourceNode, mode, this);
   
  -    if(isDot)
  +    XObject value = m_selectExpression.execute(transformer.getXPathContext(), 
  +                                               sourceNode, this);
  +    
  +    if(TransformerImpl.S_DEBUG)
  +      transformer.getTraceManager().fireSelectedEvent(sourceNode,
  +                                                      this, "select", m_selectExpression, value);
  +    String s = value.str();
  +    int len = s.length();
  +    if(len > 0)
       {
  -      String s;
  -      
  -      int t = sourceNode.getNodeType();
  -      if(((Node.COMMENT_NODE ==t) || 
  -          (Node.PROCESSING_INSTRUCTION_NODE == t)))
  +      ResultTreeHandler hth = transformer.getResultTreeHandler();
  +      if(m_disableOutputEscaping)
         {
  -        s = sourceNode.getNodeValue();
  +        hth.startNonEscaping();
  +        hth.characters(s.toCharArray(), 0, len);
  +        hth.endNonEscaping();
         }
         else
  -      {
  -        s = org.apache.xpath.DOMHelper.getNodeData(sourceNode);
  -      }
  -
  -      if(TransformerImpl.S_DEBUG)
  -        transformer.getTraceManager().fireSelectedEvent(sourceNode,
  -                                      this, "select", m_selectExpression, new XString(s));
  -      
  -      if(null != s)
  -      {
  -        int len = s.length();
  -        if(len > 0)
  -        {
  -          if(m_disableOutputEscaping)
  -          {
  -            transformer.getResultTreeHandler().startNonEscaping();
  -          }
  -          transformer.getResultTreeHandler().characters(s.toCharArray(), 0, s.length());
  -          if(m_disableOutputEscaping)
  -          {
  -            transformer.getResultTreeHandler().endNonEscaping();
  -          }
  -        }
  -      }
  -
  -    }
  -    else
  -    {
  -      XObject value = m_selectExpression.execute(transformer.getXPathContext(), 
  -                                                 sourceNode, this);
  -      
  -      if(TransformerImpl.S_DEBUG)
  -        transformer.getTraceManager().fireSelectedEvent(sourceNode,
  -                                      this, "select", m_selectExpression, value);
  -      if(null != value)
  -      {
  -        int type = value.getType();
  -        if(XObject.CLASS_NULL != type)
  -        {
  -          String s = value.str();
  -          if(null != s)
  -          {
  -            int len = s.length();
  -            if(len > 0)
  -            {
  -              if(m_disableOutputEscaping)
  -              {
  -                transformer.getResultTreeHandler().startNonEscaping();
  -              }
  -              transformer.getResultTreeHandler().characters(s.toCharArray(), 0, s.length());
  -              if(m_disableOutputEscaping)
  -              {
  -                transformer.getResultTreeHandler().endNonEscaping();
  -              }
  -            }
  -          }
  -        }
  -      }
  +        hth.characters(s.toCharArray(), 0, len);
       }
     }