You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@xalan.apache.org by mm...@locus.apache.org on 2000/09/14 00:14:38 UTC
cvs commit: xml-xalan/java/src/org/apache/xpath/patterns NodeTest.java StepPattern.java
mmidy 00/09/13 15:14:37
Modified: java/src/org/apache/xpath/patterns NodeTest.java
StepPattern.java
Log:
Fix wild card matches and scores of match patterns with a predicate
Revision Changes Path
1.5 +3 -3 xml-xalan/java/src/org/apache/xpath/patterns/NodeTest.java
Index: NodeTest.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/patterns/NodeTest.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- NodeTest.java 2000/09/12 19:17:35 1.4
+++ NodeTest.java 2000/09/13 22:14:37 1.5
@@ -104,7 +104,7 @@
/**
* Static calc of match score.
*/
- private final void calcScore()
+ protected void calcScore()
{
if((m_namespace == null) && (m_name == null))
m_score = SCORE_NODETEST;
@@ -212,7 +212,7 @@
if(0 == isNamespace)
{
if(!dh.isNamespaceNode(context))
- return ((m_name == WILD) ||
+ return (( m_namespace == null && m_name == WILD) ||
(subPartMatch(dh.getNamespaceOfNode(context), m_namespace)
&& subPartMatch(dh.getLocalNameOfNode(context), m_name))) ?
m_score : SCORE_NONE;
@@ -235,7 +235,7 @@
case NodeFilter.SHOW_ELEMENT:
{
DOMHelper dh = xctxt.getDOMHelper();
- return ((m_name == WILD) ||
+ return (( m_namespace == null && m_name == WILD) ||
(subPartMatch(dh.getNamespaceOfNode(context), m_namespace)
&& subPartMatch(dh.getLocalNameOfNode(context), m_name))) ?
m_score : SCORE_NONE;
1.5 +13 -0 xml-xalan/java/src/org/apache/xpath/patterns/StepPattern.java
Index: StepPattern.java
===================================================================
RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/patterns/StepPattern.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- StepPattern.java 2000/09/12 19:17:35 1.4
+++ StepPattern.java 2000/09/13 22:14:37 1.5
@@ -47,7 +47,20 @@
public void setPredicates(Expression[] predicates)
{
m_predicates = predicates;
+ calcScore();
}
+
+ /**
+ * Static calc of match score.
+ */
+ protected final void calcScore()
+ {
+ if(getPredicateCount() > 0)
+ m_score = SCORE_OTHER;
+ else
+ super.calcScore();
+ }
+
public XObject executeStep(XPathContext xctxt)
throws org.xml.sax.SAXException