* 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.
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;
}
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;
return msec;
}
- private static double jsStaticFunction_parse(String s) {
+ private static double jsStaticJSFunction_parse(String s) {
return date_parseString(s);
}
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);
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.
}
/* 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"
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);
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));
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;
}
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);
}
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;