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