2003/11/13 05:04:22
[org.ibex.core.git] / src / org / xwt / js / JSDate.java
similarity index 93%
rename from src/org/xwt/js/Date.java
rename to src/org/xwt/js/JSDate.java
index 150d738..37624b4 100644 (file)
@@ -47,9 +47,9 @@ import java.text.SimpleDateFormat;
  * See ECMA 15.9.
  * @author Mike McCabe
  */
-public class Date extends JS.Obj {
+public class JSDate extends JSCallable {
 
-    public Date() {
+    public JSDate() {
         if (thisTimeZone == null) {
             // j.u.TimeZone is synchronized, so setting class statics from it
             // should be OK.
@@ -60,253 +60,206 @@ public class Date extends JS.Obj {
 
     public String coerceToString() { return date_format(date, FORMATSPEC_FULL); }
 
-    public Object callMethod(Object name, JS.Array args_, boolean checkOnly) {
+    public Object call(Object name, JSArray args_) {
         Object[] args = new Object[args_.length()];
         for(int i=0; i<args.length; i++) args[i] = args_.elementAt(i);
 
         if (name.equals(getIdName(ConstructorId_UTC))) { 
-            if (checkOnly) return Boolean.TRUE;
-            return new Double(jsStaticFunction_UTC(args));
+            return new Double(jsStaticJSFunction_UTC(args));
             
         } else if (name.equals(getIdName(ConstructorId_parse))) { 
-            if (checkOnly) return Boolean.TRUE;
-            return new Double(jsStaticFunction_parse(args[0].toString()));
+            return new Double(jsStaticJSFunction_parse(args[0].toString()));
             
         } else if (name.equals(getIdName(Id_constructor))) {
-            if (checkOnly) return Boolean.TRUE;
-            return new Date(args_);
+            return new JSDate(args_);
             
         } else if (name.equals(getIdName(Id_toString))) {
-            if (checkOnly) return Boolean.TRUE;
             double t = date;
             return date_format(t, FORMATSPEC_FULL);
 
         } else if (name.equals(getIdName(Id_toTimeString))) {
-            if (checkOnly) return Boolean.TRUE;
             double t = date;
             return date_format(t, FORMATSPEC_TIME);
 
         } else if (name.equals(getIdName(Id_toDateString))) {
-            if (checkOnly) return Boolean.TRUE;
             double t = date;
             return date_format(t, FORMATSPEC_DATE);
 
         } else if (name.equals(getIdName(Id_toLocaleString))) {
-            if (checkOnly) return Boolean.TRUE;
             double t = date;
-            return jsFunction_toLocaleString(t);
+            return jsJSFunction_toLocaleString(t);
 
         } else if (name.equals(getIdName(Id_toLocaleTimeString))) {
-            if (checkOnly) return Boolean.TRUE;
             double t = date;
-            return jsFunction_toLocaleTimeString(t);
+            return jsJSFunction_toLocaleTimeString(t);
 
         } else if (name.equals(getIdName(Id_toLocaleDateString))) {
-            if (checkOnly) return Boolean.TRUE;
             double t = date;
-            return jsFunction_toLocaleDateString(t);
+            return jsJSFunction_toLocaleDateString(t);
 
         } else if (name.equals(getIdName(Id_toUTCString))) {
-            if (checkOnly) return Boolean.TRUE;
             double t = date;
-            return jsFunction_toUTCString(t);
+            return jsJSFunction_toUTCString(t);
 
         } else if (name.equals(getIdName(Id_valueOf))) { 
-            if (checkOnly) return Boolean.TRUE;
             return new Double(this.date);
 
         } else if (name.equals(getIdName(Id_getTime))) { 
-            if (checkOnly) return Boolean.TRUE;
             return new Double(this.date);
 
         } else if (name.equals(getIdName(Id_getYear))) {
-            if (checkOnly) return Boolean.TRUE;
             double t = date;
-            t = jsFunction_getYear(t);
+            t = jsJSFunction_getYear(t);
             return new Double(t);
 
         } else if (name.equals(getIdName(Id_getFullYear))) {
-            if (checkOnly) return Boolean.TRUE;
             double t = date;
             t = YearFromTime(LocalTime(t));
             return new Double(t);
 
         } else if (name.equals(getIdName(Id_getUTCFullYear))) {
-            if (checkOnly) return Boolean.TRUE;
             double t = date;
             t = YearFromTime(t);
             return new Double(t);
 
         } else if (name.equals(getIdName(Id_getMonth))) {
-            if (checkOnly) return Boolean.TRUE;
             double t = date;
             t = MonthFromTime(LocalTime(t));
             return new Double(t);
                 
         } else if (name.equals(getIdName(Id_getUTCMonth))) {
-            if (checkOnly) return Boolean.TRUE;
             double t = date;
             t = MonthFromTime(t);
             return new Double(t);
 
         } else if (name.equals(getIdName(Id_getDate))) {
-            if (checkOnly) return Boolean.TRUE;
             double t = date;
             t = DateFromTime(LocalTime(t));
             return new Double(t);
 
         } else if (name.equals(getIdName(Id_getUTCDate))) {
-            if (checkOnly) return Boolean.TRUE;
             double t = date;
             t = DateFromTime(t);
             return new Double(t);
 
         } else if (name.equals(getIdName(Id_getDay))) {
-            if (checkOnly) return Boolean.TRUE;
             double t = date;
             t = WeekDay(LocalTime(t));
             return new Double(t);
 
         } else if (name.equals(getIdName(Id_getUTCDay))) {
-            if (checkOnly) return Boolean.TRUE;
             double t = date;
             t = WeekDay(t);
             return new Double(t);
 
         } else if (name.equals(getIdName(Id_getHours))) {
-            if (checkOnly) return Boolean.TRUE;
             double t = date;
             t = HourFromTime(LocalTime(t));
             return new Double(t);
 
         } else if (name.equals(getIdName(Id_getUTCHours))) {
-            if (checkOnly) return Boolean.TRUE;
             double t = date;
             t = HourFromTime(t);
             return new Double(t);
 
         } else if (name.equals(getIdName(Id_getMinutes))) {
-            if (checkOnly) return Boolean.TRUE;
             double t = date;
             t = MinFromTime(LocalTime(t));
             return new Double(t);
 
         } else if (name.equals(getIdName(Id_getUTCMinutes))) {
-            if (checkOnly) return Boolean.TRUE;
             double t = date;
             t = MinFromTime(t);
             return new Double(t);
 
         } else if (name.equals(getIdName(Id_getSeconds))) {
-            if (checkOnly) return Boolean.TRUE;
             double t = date;
             t = SecFromTime(LocalTime(t));
             return new Double(t);
 
         } else if (name.equals(getIdName(Id_getUTCSeconds))) {
-            if (checkOnly) return Boolean.TRUE;
             double t = date;
             t = SecFromTime(t);
             return new Double(t);
                 
         } else if (name.equals(getIdName(Id_getMilliseconds))) {
-            if (checkOnly) return Boolean.TRUE;
             double t = date;
             t = msFromTime(LocalTime(t));
             return new Double(t);
 
         } else if (name.equals(getIdName(Id_getUTCMilliseconds))) {
-            if (checkOnly) return Boolean.TRUE;
             double t = date;
             t = msFromTime(t);
             return new Double(t);
 
         } else if (name.equals(getIdName(Id_getTimezoneOffset))) {
-            if (checkOnly) return Boolean.TRUE;
             double t = date;
-            t = jsFunction_getTimezoneOffset(t);
+            t = jsJSFunction_getTimezoneOffset(t);
             return new Double(t);
 
         } else if (name.equals(getIdName(Id_setTime))) { 
-            if (checkOnly) return Boolean.TRUE;
-            return new Double(this.jsFunction_setTime(_toNumber(args, 0)));
+            return new Double(this.jsJSFunction_setTime(_toNumber(args, 0)));
 
         } else if (name.equals(getIdName(Id_setMilliseconds))) { 
-            if (checkOnly) return Boolean.TRUE;
             return new Double(this.
                                makeTime(args, 1, true));
 
         } else if (name.equals(getIdName(Id_setUTCMilliseconds))) { 
-            if (checkOnly) return Boolean.TRUE;
             return new Double(this.
                                makeTime(args, 1, false));
 
         } else if (name.equals(getIdName(Id_setSeconds))) { 
-            if (checkOnly) return Boolean.TRUE;
             return new Double(this.
                                makeTime(args, 2, true));
 
         } else if (name.equals(getIdName(Id_setUTCSeconds))) { 
-            if (checkOnly) return Boolean.TRUE;
             return new Double(this.
                                makeTime(args, 2, false));
 
         } else if (name.equals(getIdName(Id_setMinutes))) { 
-            if (checkOnly) return Boolean.TRUE;
             return new Double(this.
                                makeTime(args, 3, true));
 
         } else if (name.equals(getIdName(Id_setUTCMinutes))) { 
-            if (checkOnly) return Boolean.TRUE;
             return new Double(this.
                                makeTime(args, 3, false));
 
         } else if (name.equals(getIdName(Id_setHours))) { 
-            if (checkOnly) return Boolean.TRUE;
             return new Double(this.
                                makeTime(args, 4, true));
 
         } else if (name.equals(getIdName(Id_setUTCHours))) { 
-            if (checkOnly) return Boolean.TRUE;
             return new Double(this.
                                makeTime(args, 4, false));
 
         } else if (name.equals(getIdName(Id_setDate))) { 
-            if (checkOnly) return Boolean.TRUE;
             return new Double(this.
                                makeDate(args, 1, true));
 
         } else if (name.equals(getIdName(Id_setUTCDate))) { 
-            if (checkOnly) return Boolean.TRUE;
             return new Double(this.
                                makeDate(args, 1, false));
 
         } else if (name.equals(getIdName(Id_setMonth))) { 
-            if (checkOnly) return Boolean.TRUE;
             return new Double(this.
                                makeDate(args, 2, true));
 
         } else if (name.equals(getIdName(Id_setUTCMonth))) { 
-            if (checkOnly) return Boolean.TRUE;
             return new Double(this.
                                makeDate(args, 2, false));
 
         } else if (name.equals(getIdName(Id_setFullYear))) { 
-            if (checkOnly) return Boolean.TRUE;
             return new Double(this.
                                makeDate(args, 3, true));
 
         } else if (name.equals(getIdName(Id_setUTCFullYear))) { 
-            if (checkOnly) return Boolean.TRUE;
             return new Double(this.
                                makeDate(args, 3, false));
 
         } else if (name.equals(getIdName(Id_setYear))) { 
-            if (checkOnly) return Boolean.TRUE;
             return new Double(this.
-                               jsFunction_setYear(_toNumber(args, 0)));
+                               jsJSFunction_setYear(_toNumber(args, 0)));
         }
-        if (checkOnly) return Boolean.FALSE;
         return null;
     }
 
@@ -667,7 +620,7 @@ public class Date extends JS.Obj {
 
 
     private static final int MAXARGS = 7;
-    private static double jsStaticFunction_UTC(Object[] args) {
+    private static double jsStaticJSFunction_UTC(Object[] args) {
         double array[] = new double[MAXARGS];
         int loop;
         double d;
@@ -935,7 +888,7 @@ public class Date extends JS.Obj {
         return msec;
     }
 
-    private static double jsStaticFunction_parse(String s) {
+    private static double jsStaticJSFunction_parse(String s) {
         return date_parseString(s);
     }
 
@@ -945,7 +898,7 @@ public class Date extends JS.Obj {
 
     private static String date_format(double t, int format) {
         if (t != t)
-            return jsFunction_NaN_date_str;
+            return jsJSFunction_NaN_date_str;
 
         StringBuffer result = new StringBuffer(60);
         double local = LocalTime(t);
@@ -1031,10 +984,10 @@ public class Date extends JS.Obj {
     private static double _toNumber(Object[] o, int index) { return JS.toDouble(o[index]); }
     private static double toDouble(double d) { return d; }
 
-    public Date(JS.Array args_) {
+    public JSDate(JSArray args_) {
         Object[] args = new Object[args_.length()];
         for(int i=0; i<args.length; i++) args[i] = args_.elementAt(i);
-        Date obj = this;
+        JSDate obj = this;
 
         // if called as a constructor with no args,
         // return a new Date with the current time.
@@ -1098,7 +1051,7 @@ public class Date extends JS.Obj {
     }
 
     /* constants for toString, toUTCString */
-    private static String jsFunction_NaN_date_str = "Invalid Date";
+    private static String jsJSFunction_NaN_date_str = "Invalid Date";
 
     private static String[] days = {
         "Sun","Mon","Tue","Wed","Thu","Fri","Sat"
@@ -1113,13 +1066,13 @@ public class Date extends JS.Obj {
                                           java.text.DateFormat formatter)
     {
         if (t != t)
-            return jsFunction_NaN_date_str;
+            return jsJSFunction_NaN_date_str;
 
         java.util.Date tempdate = new java.util.Date((long) t);
         return formatter.format(tempdate);
     }
 
-    private static String jsFunction_toLocaleString(double date) {
+    private static String jsJSFunction_toLocaleString(double date) {
         if (localeDateTimeFormatter == null)
             localeDateTimeFormatter =
                 DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG);
@@ -1127,21 +1080,21 @@ public class Date extends JS.Obj {
         return toLocale_helper(date, localeDateTimeFormatter);
     }
 
-    private static String jsFunction_toLocaleTimeString(double date) {
+    private static String jsJSFunction_toLocaleTimeString(double date) {
         if (localeTimeFormatter == null)
             localeTimeFormatter = DateFormat.getTimeInstance(DateFormat.LONG);
 
         return toLocale_helper(date, localeTimeFormatter);
     }
 
-    private static String jsFunction_toLocaleDateString(double date) {
+    private static String jsJSFunction_toLocaleDateString(double date) {
         if (localeDateFormatter == null)
             localeDateFormatter = DateFormat.getDateInstance(DateFormat.LONG);
 
         return toLocale_helper(date, localeDateFormatter);
     }
 
-    private static String jsFunction_toUTCString(double date) {
+    private static String jsJSFunction_toUTCString(double date) {
         StringBuffer result = new StringBuffer(60);
 
         String dateStr = Integer.toString(DateFromTime(date));
@@ -1187,17 +1140,17 @@ public class Date extends JS.Obj {
         return result.toString();
     }
 
-    private static double jsFunction_getYear(double date) {
+    private static double jsJSFunction_getYear(double date) {
         int result = YearFromTime(LocalTime(date));
         result -= 1900;
         return result;
     }
 
-    private static double jsFunction_getTimezoneOffset(double date) {
+    private static double jsJSFunction_getTimezoneOffset(double date) {
         return (date - LocalTime(date)) / msPerMinute;
     }
 
-    public double jsFunction_setTime(double time) {
+    public double jsJSFunction_setTime(double time) {
         this.date = TimeClip(time);
         return this.date;
     }
@@ -1278,11 +1231,11 @@ public class Date extends JS.Obj {
         return date;
     }
 
-    private double jsFunction_setHours(Object[] args) {
+    private double jsJSFunction_setHours(Object[] args) {
         return makeTime(args, 4, true);
     }
 
-    private double jsFunction_setUTCHours(Object[] args) {
+    private double jsJSFunction_setUTCHours(Object[] args) {
         return makeTime(args, 4, false);
     }
 
@@ -1355,7 +1308,7 @@ public class Date extends JS.Obj {
         return date;
     }
 
-    private double jsFunction_setYear(double year) {
+    private double jsJSFunction_setYear(double year) {
         double day, result;
         if (year != year || Double.isInfinite(year)) {
             this.date = Double.NaN;