sboag       00/10/17 12:45:48

  Modified:    java/src/org/apache/xpath/patterns FunctionPattern.java
  Log:
  Added calcScore method for compile time determination, which assigns a value 
of SCORE_OTHER.
  
  Revision  Changes    Path
  1.2       +19 -6     
xml-xalan/java/src/org/apache/xpath/patterns/FunctionPattern.java
  
  Index: FunctionPattern.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xpath/patterns/FunctionPattern.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- FunctionPattern.java      2000/07/05 14:48:55     1.1
  +++ FunctionPattern.java      2000/10/17 19:45:46     1.2
  @@ -18,6 +18,16 @@
       m_functionExpr = expr;
     }
     
  +  /**
  +   * Static calc of match score.
  +   */
  +  protected final void calcScore()
  +  {
  +    m_score = SCORE_OTHER;
  +    if(null == m_targetString)
  +      calcTargetString();
  +  }
  +  
     Expression m_functionExpr;
     
     /**
  @@ -37,14 +47,17 @@
       XObject obj = m_functionExpr.execute(xctxt);
       NodeIterator nl = obj.nodeset();
       XNumber score = SCORE_NONE;
  -    Node n;
  -    while(null != (n = nl.nextNode()))
  +    if(null != nl)
       {
  -      score = (n.equals(context)) ? SCORE_OTHER : SCORE_NONE;
  -      if(score == SCORE_OTHER)
  +      Node n;
  +      while(null != (n = nl.nextNode()))
         {
  -        context = n;
  -        break;
  +        score = (n.equals(context)) ? SCORE_OTHER : SCORE_NONE;
  +        if(score == SCORE_OTHER)
  +        {
  +          context = n;
  +          break;
  +        }
         }
       }
       return score;
  
  
  

Reply via email to