@Override
protected Span _thisSpan(PointerType pointer) {
Calendar monthStart;
Calendar monthEnd;
if (pointer == PointerType.FUTURE) {
monthStart = Time.cloneAndAdd(Time.ymd(getNow()), Calendar.DAY_OF_MONTH, 1);
monthEnd = Time.cloneAndAdd(Time.ym(getNow()), Calendar.MONTH, 1);
}
else if (pointer == PointerType.PAST) {
monthStart = Time.ym(getNow());
monthEnd = Time.ymd(getNow());
}
else if (pointer == PointerType.NONE) {
monthStart = Time.ym(getNow());
monthEnd = Time.cloneAndAdd(Time.ym(getNow()), Calendar.MONTH, 1);
}
else {
throw new IllegalArgumentException("Unable to handle pointer " + pointer + ".");
}
return new Span(monthStart, monthEnd);
}