package com.nurkiewicz.asyncretry.backoff;
import com.nurkiewicz.asyncretry.AsyncRetryContext;
import com.nurkiewicz.asyncretry.RetryContext;
public class FirstRetryNoDelayBackoff extends BackoffWrapper {
public FirstRetryNoDelayBackoff(Backoff target) {
super(target);
}
@Override
public long delayMillis(RetryContext context) {
if (context.isFirstRetry()) {
return 0;
} else {
return target.delayMillis(decrementRetryCount(context));
}
}
private RetryContext decrementRetryCount(RetryContext context) {
return ((AsyncRetryContext) context).prevRetry();
}
}