mmidy       2002/09/19 14:43:30

  Modified:    java/src/org/apache/xpath/axes Tag: xslt20
                        ExceptPathIterator.java
               java/src/org/apache/xpath/functions Tag: xslt20
                        FuncDistinctNodes.java
               java/src/org/apache/xpath/parser Tag: xslt20 SimpleNode.java
                        XPath.java XPathTreeConstants.java
               java/src/org/apache/xpath/types Tag: xslt20
                        InstanceofExpr.java
  Added:       java/src/org/apache/xpath/axes Tag: xslt20
                        IntersectPathIterator.java
               java/src/org/apache/xpath/functions Tag: xslt20
                        FuncAverage.java
  Log:
  Misc fixes in sequences, instance of, new function Avg,
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.2   +8 -3      
xml-xalan/java/src/org/apache/xpath/axes/Attic/ExceptPathIterator.java
  
  Index: ExceptPathIterator.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xpath/axes/Attic/ExceptPathIterator.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- ExceptPathIterator.java   6 Sep 2002 15:06:06 -0000       1.1.2.1
  +++ ExceptPathIterator.java   19 Sep 2002 21:43:30 -0000      1.1.2.2
  @@ -218,13 +218,18 @@
         accept = super.acceptNode(n);
        if (accept == DTMIterator.FILTER_ACCEPT)
        {
  -             int node = m_iterators[1].getCurrentNode();
  +       try
  +       {
  +         DTMIterator iterator = (DTMIterator)m_iterators[1].clone();
  +             int node = iterator.getCurrentNode();
                while (node != DTM.NULL)
                {
                        if (n ==  node)
                        return DTMIterator.FILTER_SKIP;
  -                     node = m_iterators[1].nextNode();
  -             } 
  +                     node = iterator.nextNode();
  +             }
  +       }
  +       catch (CloneNotSupportedException ex) {} 
        }
        return accept;
     }
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.1   +145 -0    
xml-xalan/java/src/org/apache/xpath/axes/Attic/IntersectPathIterator.java
  
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.2   +3 -3      
xml-xalan/java/src/org/apache/xpath/functions/Attic/FuncDistinctNodes.java
  
  Index: FuncDistinctNodes.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xpath/functions/Attic/FuncDistinctNodes.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.2
  diff -u -r1.1.2.1 -r1.1.2.2
  --- FuncDistinctNodes.java    18 Sep 2002 14:17:47 -0000      1.1.2.1
  +++ FuncDistinctNodes.java    19 Sep 2002 21:43:30 -0000      1.1.2.2
  @@ -114,15 +114,15 @@
             XObject obj;
            while((obj = seq.next()) != null)
             {
  -            // is this correct, or is it just plain equals??
  -           if (xnss.equalsExistential(obj))
  +            if (xnss.equals(obj))
               {
                 found = true;
                 break;
               }
             }
             if (!found)             
  -              seq.insertItemAt(item, pos++);
  +            seq.insertItemAt(item, pos++);
  +          seq.reset();    
            }
          }
        }
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.1   +127 -0    
xml-xalan/java/src/org/apache/xpath/functions/Attic/FuncAverage.java
  
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.1.2.11 +10 -2     
xml-xalan/java/src/org/apache/xpath/parser/Attic/SimpleNode.java
  
  Index: SimpleNode.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xpath/parser/Attic/SimpleNode.java,v
  retrieving revision 1.1.2.1.2.10
  retrieving revision 1.1.2.1.2.11
  diff -u -r1.1.2.1.2.10 -r1.1.2.1.2.11
  --- SimpleNode.java   18 Sep 2002 14:17:47 -0000      1.1.2.1.2.10
  +++ SimpleNode.java   19 Sep 2002 21:43:30 -0000      1.1.2.1.2.11
  @@ -10,6 +10,7 @@
   import org.apache.xpath.ExpressionNode;
   import org.apache.xpath.axes.UnionPathIterator;
   import org.apache.xpath.axes.ExceptPathIterator;
  +import org.apache.xpath.axes.IntersectPathIterator;
   import org.apache.xpath.axes.WalkerFactory;
   import org.apache.xpath.functions.*;
   import org.apache.xpath.objects.XDecimal;
  @@ -389,7 +390,10 @@
         new FuncDistinctNodes());
   m_builtInFunctions.put(
         new QName("distinct-values"),
  -      new FuncDistinctValues());
  +      new FuncDistinctValues());      
  +m_builtInFunctions.put(
  +      new QName("avg"),
  +      new FuncAverage());
     }
   
     /**
  @@ -639,7 +643,11 @@
         case XPathTreeConstants.JJTUNIONEXPR :
           newNode = new UnionPathIterator();
           break;
  -      case XPathTreeConstants.JJTINTERSECTEXCEPTEXPR :
  +      case XPathTreeConstants.JJTINTERSECTEXPR :
  +        //newNode = new NonExecutableExpression(p, "JJTUNIONEXPR");
  +        newNode = new IntersectPathIterator();
  +        break;
  +        case XPathTreeConstants.JJTEXCEPTEXPR :
           //newNode = new NonExecutableExpression(p, "JJTUNIONEXPR");
           newNode = new ExceptPathIterator();
           break;
  
  
  
  1.1.2.1.2.1 +7 -2      
xml-xalan/java/src/org/apache/xpath/parser/Attic/XPath.java
  
  Index: XPath.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xpath/parser/Attic/XPath.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.1.2.1
  diff -u -r1.1.2.1 -r1.1.2.1.2.1
  --- XPath.java        14 Aug 2002 20:07:07 -0000      1.1.2.1
  +++ XPath.java        19 Sep 2002 21:43:30 -0000      1.1.2.1.2.1
  @@ -1380,22 +1380,27 @@
           jj_la1[30] = jj_gen;
           break label_14;
         }
  +      SimpleNode jjtn001;
         switch ((jj_ntk==-1)?jj_ntk():jj_ntk) {
         case Intersect:
           jj_consume_token(Intersect);
             binaryTokenStack.push(token);
  +        UnaryExpr();
  +        jjtn001 = (SimpleNode)SimpleNode.jjtCreate(this, JJTINTERSECTEXPR);
           break;
         case Except:
           jj_consume_token(Except);
             binaryTokenStack.push(token);
  +        UnaryExpr();
  +        jjtn001 = (SimpleNode)SimpleNode.jjtCreate(this, JJTEXCEPTEXPR);
           break;
         default:
           jj_la1[31] = jj_gen;
           jj_consume_token(-1);
           throw new ParseException();
         }
  -      UnaryExpr();
  -                  SimpleNode jjtn001 = 
(SimpleNode)SimpleNode.jjtCreate(this, JJTINTERSECTEXCEPTEXPR);
  +      //UnaryExpr();
  +                  //SimpleNode jjtn001 = 
(SimpleNode)SimpleNode.jjtCreate(this, JJTINTERSECTEXCEPTEXPR);
                     boolean jjtc001 = true;
                     jjtree.openNodeScope(jjtn001);
         try {
  
  
  
  1.1.2.1.2.1 +2 -1      
xml-xalan/java/src/org/apache/xpath/parser/Attic/XPathTreeConstants.java
  
  Index: XPathTreeConstants.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xpath/parser/Attic/XPathTreeConstants.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.1.2.1
  diff -u -r1.1.2.1 -r1.1.2.1.2.1
  --- XPathTreeConstants.java   14 Aug 2002 20:07:07 -0000      1.1.2.1
  +++ XPathTreeConstants.java   19 Sep 2002 21:43:30 -0000      1.1.2.1.2.1
  @@ -41,7 +41,7 @@
     public int JJTADDITIVEEXPR = 34;
     public int JJTMULTIPLICATIVEEXPR = 35;
     public int JJTUNIONEXPR = 36;
  -  public int JJTINTERSECTEXCEPTEXPR = 37;
  +  public int JJTINTERSECTEXPR = 37;
     public int JJTUNARYEXPR = 38;
     public int JJTMINUS = 39;
     public int JJTPLUS = 40;
  @@ -112,6 +112,7 @@
     public int JJTOCCURRENCEINDICATOR = 105;
     public int JJTMULTIPLY = 106;
     public int JJTQMARK = 107;
  +  public int JJTEXCEPTEXPR = 108;
   
   
     public String[] jjtNodeName = {
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.1.2.1 +17 -7     
xml-xalan/java/src/org/apache/xpath/types/Attic/InstanceofExpr.java
  
  Index: InstanceofExpr.java
  ===================================================================
  RCS file: 
/home/cvs/xml-xalan/java/src/org/apache/xpath/types/Attic/InstanceofExpr.java,v
  retrieving revision 1.1.2.1
  retrieving revision 1.1.2.1.2.1
  diff -u -r1.1.2.1 -r1.1.2.1.2.1
  --- InstanceofExpr.java       14 Aug 2002 20:07:10 -0000      1.1.2.1
  +++ InstanceofExpr.java       19 Sep 2002 21:43:30 -0000      1.1.2.1.2.1
  @@ -112,6 +112,10 @@
     /** SchemaContext is not executable for the moment, so leave it 
      * as a NEE until we figure out what we want to do with it. **/
     private SchemaContext m_schemaContext;
  +  
  +  /** Flag indicating whether expression should be reduced.
  +   *  False if this has more than one child. **/
  +  private boolean m_reduce = true;
        
     public InstanceofExpr() {
       super();
  @@ -154,8 +158,8 @@
        
        XObject value=m_targetExpr.execute(xctxt);
        
  -     
  -     switch(value.getType())
  +     int type = value.getType();
  +     switch(type)
        {
                case XObject.CLASS_UNKNOWN:
                        // If not XSLT type, can't be instance of ...?
  @@ -230,7 +234,7 @@
                        }
                        break;
        
  -             case XObject.CLASS_BOOLEAN:
  +             /*case XObject.CLASS_BOOLEAN:
                        isInstance&=(m_elemOrAttrName==null);
                        isInstance&=(m_schemaTypeName==null);
                        isInstance&=(m_whatToShow==0);
  @@ -254,11 +258,16 @@
                        isInstance&=(m_whatToShow==0);
                        isInstance&=(m_atomicTypeID==XType.STRING);
                        break;
  -                     
  +             */      
                default:
  +                 isInstance&=(m_elemOrAttrName==null);
  +                     isInstance&=(m_schemaTypeName==null);
  +                     isInstance&=(m_whatToShow==0);
  +                     isInstance&=(m_atomicTypeID==type);
  +                     break;
                        // Should never arise
  -                     isInstance=false;
  -                     break;
  +                     //isInstance=false;
  +                     //break;
        }
        
        return isInstance ? XBoolean.S_TRUE : XBoolean.S_FALSE;
  @@ -296,7 +305,7 @@
      */
     public boolean shouldReduceIfOneChild()
     {
  -    return (m_whatToShow == 0 && m_atomicTypeID == 0) ? true : false;
  +    return (m_whatToShow == 0 && m_atomicTypeID == 0 && m_reduce) ? true : 
false;
     }
   
   
  @@ -409,6 +418,7 @@
         m_schemaContext = stype.getSchemaContext();
         m_schemaTypeName = stype.getSchemaTypeName();
         m_whatToShow = stype.getWhatToShow();
  +      m_reduce = false;
       }
     }
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to