package com.cookpad.puree.internal; public class BackoffCounter { private final int baseTimeMillis; private final int maxRetryCount; private int retryCount = 0; public int getRetryCount() { return retryCount; } public BackoffCounter(int baseTimeMillis, int maxRetryCount) { this.baseTimeMillis = baseTimeMillis; this.maxRetryCount = maxRetryCount; } public boolean isRemainingRetryCount() { return ((maxRetryCount - retryCount) > 0); } public void incrementRetryCount() { retryCount++; } public void resetRetryCount() { retryCount = 0; } public long timeInMillis() { if (retryCount == 0) { return baseTimeMillis; } else { return baseTimeMillis * (retryCount + 1); } } }