@Override public String toString() { return getState().toString(); }
/** * Returns whether the circuit is closed. */ public boolean isClosed() { return State.CLOSED.equals(getState()); }
/** * Returns whether the circuit is half open. */ public boolean isHalfOpen() { return State.HALF_OPEN.equals(getState()); }
/** * Returns whether the circuit is open. */ public boolean isOpen() { return State.OPEN.equals(getState()); }
private CircuitBreakerView toView(final CircuitBreaker breaker) { return new CircuitBreakerView(breaker.getState()); }
/** * Transitions to the {@code newState} if not already in that state and calls any associated event listener. */ private void transitionTo(State newState, CheckedRunnable listener) { boolean transitioned = false; synchronized (this) { if (!getState().equals(newState)) { switch (newState) { case CLOSED: state.set(new ClosedState(this)); break; case OPEN: state.set(new OpenState(this, state.get())); break; case HALF_OPEN: state.set(new HalfOpenState(this)); break; } transitioned = true; } } if (transitioned && listener != null) { try { listener.run(); } catch (Exception ignore) { } } }