package com.github.jaceko.circuitswitcher; import java.util.concurrent.atomic.AtomicInteger; public class CircuitClosed implements CircuitState { private final AtomicInteger failureCount = new AtomicInteger(0); public void onError(Circuit circuit) { int currentCount = failureCount.incrementAndGet(); int threshold = circuit.getFailureThreshold(); if(currentCount >= threshold) { circuit.tripBreaker(); } } public void onSuccess(Circuit circuit) { failureCount.set(0); } public boolean connectionAvailable(Circuit circuit) { return true; } @Override public String toString() { return String.format("CircuitClosed [failureCount=%s]", failureCount); } }