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;