@Override public int getWidth() { if (_range == null) { throw new IllegalStateException("Range has not been set"); } int width; if (_currentSpan != null) { width = (int) _currentSpan.getWidth(); } else { width = _getWidth(_range); } return width; }
/** * Guess a specific time within the given span */ // DIFF: We return Span instead of Date protected static Span guess(Span span) { if (span == null) { return null; } long guessValue; if (span.getWidth() > 1) { guessValue = span.getBegin() + (span.getWidth() / 2); } else { guessValue = span.getBegin(); } Span guess = new Span(guessValue, guessValue); return guess; } }
@Override public Span getOffset(Span span, int amount, PointerType pointer) { int direction = (pointer == Pointer.PointerType.FUTURE) ? 1 : -1; RepeaterWeekend weekend = new RepeaterWeekend(); weekend.setStart(span.getBeginCalendar()); Calendar start = Time.cloneAndAdd(weekend.nextSpan(pointer).getBeginCalendar(), Calendar.SECOND, (amount - 1) * direction * RepeaterWeek.WEEK_SECONDS); return new Span(start, Time.cloneAndAdd(start, Calendar.SECOND, span.getWidth())); }