@Override public Stream<Long> toBackoffs() { Stream<Long> backoffStream; switch (type) { case DECORRELATED: backoffStream = decorrelatedJittered(startMs, maxMs); break; case EQUAL: backoffStream = equalJittered(startMs, maxMs); break; case EXPONENTIAL: default: backoffStream = exponentialJittered(startMs, maxMs); break; } if (limit >= 0) { return backoffStream.limit(limit); } else { return backoffStream; } } }