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