We have duplicated code between the two implementations. Centralize it
to the common superclass.
JIRA: CONTROLLER-2098
Change-Id: I84b1a1d716c2ccbaaf2f75e3728bcbad0aa05ec6
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
return lastEntry;
}
- @Override
- long getNextIndex() {
- if (lastEntry != null) {
- return lastEntry.index() + 1;
- } else {
- return firstIndex;
- }
- }
-
@Override
@SuppressWarnings("unchecked")
<T extends E> Indexed<T> append(T entry) {
*
* @return The next index to be written.
*/
- abstract long getNextIndex();
+ final long getNextIndex() {
+ final Indexed<?> lastEntry;
+ return (lastEntry = getLastEntry()) != null ? lastEntry.index() + 1 : firstIndex;
+ }
/**
* Appends an entry to the journal.
return lastEntry;
}
- @Override
- long getNextIndex() {
- if (lastEntry != null) {
- return lastEntry.index() + 1;
- } else {
- return firstIndex;
- }
- }
-
@Override
@SuppressWarnings("unchecked")
<T extends E> Indexed<T> append(T entry) {