use of io.deephaven.web.client.api.DateWrapper in project deephaven-core by deephaven.
the class FilterValue method ofNumber.
@JsMethod(namespace = "dh.FilterValue")
public static FilterValue ofNumber(Object input) {
Objects.requireNonNull(input);
if (input instanceof DateWrapper) {
Literal lit = new Literal();
lit.setNanoTimeValue(((DateWrapper) input).valueOf());
return new FilterValue(lit);
} else if (input instanceof LongWrapper) {
Literal lit = new Literal();
lit.setLongValue(((LongWrapper) input).valueOf());
return new FilterValue(lit);
} else if (Js.typeof(input).equals("number")) {
Literal lit = new Literal();
lit.setDoubleValue(Js.asDouble(input));
return new FilterValue(lit);
} else {
// not sure what the input is, try to toString(), then parse to Double, and use that
Literal lit = new Literal();
lit.setDoubleValue(Double.parseDouble(input.toString()));
return new FilterValue(lit);
}
}
use of io.deephaven.web.client.api.DateWrapper in project deephaven-core by deephaven.
the class JsDateTimeFormat method parse.
public DateWrapper parse(String text, @JsOptional JsTimeZone tz) {
if (tz != null) {
return DateWrapper.of(parseWithTimezoneAsLong(text, tz.unwrap(), true));
}
// based on DateTimeFormat.parse, start a date to accumulate values in
Date curDate = new Date();
@SuppressWarnings("deprecation") Date date = new Date(curDate.getYear(), curDate.getMonth(), curDate.getDate());
// pass the date to each formatter and let it parse its own part of the string
int endOfStart = wrappedStart.parse(text, 0, date);
if (endOfStart == 0) {
// failed to parse
throw new IllegalArgumentException(text);
}
if (nanoCount == 0 && endOfStart < text.length()) {
// not planning on parsing more, but extra content in the input string
throw new IllegalArgumentException(text);
}
int nanosInParsedText = 0;
if (nanoCount > 0) {
// read expected nano chars
int nano;
for (nano = 0; nano < nanoCount; nano++) {
char ch = text.charAt(nano + endOfStart);
if (ch < '0' || ch > '9') {
throw new IllegalArgumentException(text);
}
nanosInParsedText = nanosInParsedText * 10 + (ch - '0');
}
// for absent nano chars, add trailing zeros
for (; nano < 9; nano++) {
nanosInParsedText *= 10;
}
if (wrappedEnd != null) {
int endOfEnd = wrappedEnd.parse(text, endOfStart + nanoCount, date);
if (endOfEnd == 0 || (endOfStart + nanoCount + endOfEnd) < text.length()) {
throw new IllegalArgumentException(text);
}
}
}
return new DateWrapper(date.getTime() * NANOS_PER_MILLI + nanosInParsedText);
}
Aggregations