/*
* Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com
* The software in this package is published under the terms of the CPAL v1.0
* license, a copy of which has been included with this distribution in the
* LICENSE.txt file.
*/
package org.mule.runtime.core.retry;
/**
* Indicates the current state of a RetryPolicy
* <ul>
* <li>ok: The policy is active</li>
* <li>exhausted: The policy has run through the actions for the policy</li>
* </ul>
*
* For example, a RetryPolicy may have a RetryCount - how many times the policy can be invoked. Once the retryCount has been
* reached, the policy is exhausted and cannot be used again.
*/
public class PolicyStatus {
private boolean exhausted = false;
private boolean ok = false;
private Throwable throwable;
public static PolicyStatus policyExhausted(Throwable t) {
return new PolicyStatus(true, t);
}
public static PolicyStatus policyOk() {
return new PolicyStatus();
}
protected PolicyStatus() {
this.ok = true;
}
protected PolicyStatus(boolean exhausted, Throwable throwable) {
this.exhausted = exhausted;
this.throwable = throwable;
}
public boolean isExhausted() {
return exhausted;
}
public boolean isOk() {
return ok;
}
public Throwable getThrowable() {
return throwable;
}
}