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...@apache.org on 2002/09/09 18:35:13 UTC

cvs commit: xml-xalan/java/src/org/apache/xpath/operations Add.java Mult.java

mmidy       2002/09/09 09:35:13

  Modified:    java/src/org/apache/xml/utils Tag: xslt20 DateTimeObj.java
               java/src/org/apache/xpath/objects Tag: xslt20 XDateTime.java
               java/src/org/apache/xpath/operations Tag: xslt20 Add.java
                        Mult.java
  Log:
  Fix add and multiply operations for symetry and timezone
  
  Revision  Changes    Path
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.1.2.3 +9 -7      xml-xalan/java/src/org/apache/xml/utils/Attic/DateTimeObj.java
  
  Index: DateTimeObj.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xml/utils/Attic/DateTimeObj.java,v
  retrieving revision 1.1.2.1.2.2
  retrieving revision 1.1.2.1.2.3
  diff -u -r1.1.2.1.2.2 -r1.1.2.1.2.3
  --- DateTimeObj.java	6 Sep 2002 20:15:53 -0000	1.1.2.1.2.2
  +++ DateTimeObj.java	9 Sep 2002 16:35:13 -0000	1.1.2.1.2.3
  @@ -361,21 +361,23 @@
        */
       private int getZoneStart (String datetime) throws TransformerException
       {
  -      if (datetime.indexOf("Z") == datetime.length()-1)
  -        return datetime.indexOf("Z");
  +    	int len = datetime.length();
  +    	int index = -1;
  +      if (datetime.indexOf("Z") == len-1)
  +        return datetime.indexOf("Z");        
         else if (
  -               (datetime.lastIndexOf("-") == datetime.length()-6 &&
  -                datetime.charAt(datetime.length()-3) == ':')               
  +               ((index = datetime.lastIndexOf("-")) == len-6 &&
  +                datetime.charAt(len-3) == ':')               
                   || 
  -                (datetime.indexOf("+") == datetime.length() -6)
  +                ((index = datetime.indexOf("+")) >= 0)
                 )
         {
           try
           {
             SimpleDateFormat dateFormat = new SimpleDateFormat("HH:mm");
             dateFormat.setLenient(false);
  -          Date d = dateFormat.parse(datetime.substring(datetime.length() -5));
  -          return datetime.length()-6;
  +          Date d = dateFormat.parse(datetime.substring(index+1));
  +          return index;
           }
           catch (ParseException pe)
           {
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.1.2.1 +6 -1      xml-xalan/java/src/org/apache/xpath/objects/Attic/XDateTime.java
  
  Index: XDateTime.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/objects/Attic/XDateTime.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
  --- XDateTime.java	14 Aug 2002 20:07:03 -0000	1.1.2.1
  +++ XDateTime.java	9 Sep 2002 16:35:13 -0000	1.1.2.1.2.1
  @@ -277,7 +277,12 @@
       int t = obj2.getType();
       if(XObject.CLASS_DATETIME == t ||
   	              XObject.CLASS_DATE == t ||
  -	              XObject.CLASS_TIME == t )
  +	              XObject.CLASS_TIME == t ||
  +	              XObject.CLASS_GDAY == t ||
  +	              XObject.CLASS_GMONTH == t ||
  +	              XObject.CLASS_GMONTHDAY == t ||
  +	              XObject.CLASS_GYEAR == t ||
  +	              XObject.CLASS_GYEARMONTH == t)
   	   return m_val.equals(((XDateTime)obj2).m_val);
        else
          return false;
  
  
  
  No                   revision
  
  
  No                   revision
  
  
  1.1.2.1.2.1 +4 -4      xml-xalan/java/src/org/apache/xpath/operations/Attic/Add.java
  
  Index: Add.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/operations/Attic/Add.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
  --- Add.java	14 Aug 2002 20:07:05 -0000	1.1.2.1
  +++ Add.java	9 Sep 2002 16:35:13 -0000	1.1.2.1.2.1
  @@ -135,13 +135,13 @@
           {
           	DateTimeObj dt = rhs.date();
           	DateTimeObj dateTime = dt.addDTDurationToDate(duration1);
  -            return new XDateTime(dateTime);
  +            return new XDate(dateTime);
           }
            if(XType.TIME == rhsVT)
           {
           	DateTimeObj dt = rhs.time();
           	DateTimeObj dateTime = dt.addDTDurationToTime(duration1);
  -            return new XDateTime(dateTime);
  +            return new XTime(dateTime);
           }
           else
           {
  @@ -160,7 +160,7 @@
         {
         	Duration duration1 = lhs.duration();
         	int rhsVT = rhs.getValueType();
  -        if(XType.DATETIME == rhsVT || XType.DATE == rhsVT)
  +        if(XType.DATETIME == rhsVT)
           {
           	DateTimeObj dt = rhs.datetime();
           	DateTimeObj dateTime = dt.addYMDurationToDateTime(duration1);
  @@ -170,7 +170,7 @@
           {
           	DateTimeObj dt = rhs.date();
           	DateTimeObj dateTime = dt.addYMDurationToDate(duration1);
  -            return new XDateTime(dateTime);
  +            return new XDate(dateTime);
           }
           else
           {
  
  
  
  1.5.14.1.2.1 +14 -1     xml-xalan/java/src/org/apache/xpath/operations/Mult.java
  
  Index: Mult.java
  ===================================================================
  RCS file: /home/cvs/xml-xalan/java/src/org/apache/xpath/operations/Mult.java,v
  retrieving revision 1.5.14.1
  retrieving revision 1.5.14.1.2.1
  diff -u -r1.5.14.1 -r1.5.14.1.2.1
  --- Mult.java	14 Aug 2002 20:07:05 -0000	1.5.14.1
  +++ Mult.java	9 Sep 2002 16:35:13 -0000	1.5.14.1.2.1
  @@ -81,7 +81,20 @@
         public XObject operate(XPathContext xctxt, XObject lhs, XObject rhs)
           throws TransformerException
         {
  -        return new XDouble(lhs.num() * rhs.num());
  +      	if (rhs.getType() == XType.YEARMONTHDURATION)
  +      	{
  +      	  Duration duration = rhs.duration();
  +      	  Duration du = duration.multiplyYMDuration(lhs.num());
  +      	  return new XYMDuration(du);
  +      	}
  +      	else if (rhs.getType() == XType.DAYTIMEDURATION)
  +      	{
  +      	  Duration duration = rhs.duration();
  +      	  Duration du = duration.multiplyDTDuration(lhs.num());
  +      	  return new XDTDuration(du);
  +      	}
  +      	else
  +      	  return new XDouble(lhs.num() * rhs.num());
         }
       });
       m_funcs.setFunc(XType.FLOAT, new GenericOpFunc()
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: xalan-cvs-unsubscribe@xml.apache.org
For additional commands, e-mail: xalan-cvs-help@xml.apache.org