package net.greencoding.thysdrus.circuitbreaker.core.handler;
import net.greencoding.thysdrus.circuitbreaker.core.model.CircuitBreakerStatus;
/**
*
* @author Nabil Ben Said (nabil.ben.said@gmail.com)
*
*/
public class MethodInvocationResult {
private long executionTime;
private boolean successfullyTerminated = false;
private boolean blockedByCircuitBreaker = false;
private CircuitBreakerStatus circuitBreakerStatus;
private Object returnObject;
/**
* if failureWhileExecution is set then check the cause property. It must be also set.
* cause property can also be set, even if failureWhileExecution is false.
*/
private boolean failureWhileExecution = false;
/**
* not catched exception thrown while method execution
*/
private Throwable cause;
public long getExecutionTime() {
return executionTime;
}
public void setExecutionTime(long executionTime) {
this.executionTime = executionTime;
}
public boolean isSuccessfullyTerminated() {
return successfullyTerminated;
}
public void setSuccessfullyTerminated(boolean successfullyTerminated) {
this.successfullyTerminated = successfullyTerminated;
}
public Object getReturnObject() {
return returnObject;
}
public void setReturnObject(Object returnObject) {
this.returnObject = returnObject;
}
public boolean isFailureWhileExecution() {
return failureWhileExecution;
}
public void setFailureWhileExecution(boolean failureWhileExecution) {
this.failureWhileExecution = failureWhileExecution;
}
public Throwable getCause() {
return cause;
}
public void setCause(Throwable cause) {
this.cause = cause;
}
public boolean isBlockedByCircuitBreaker() {
return blockedByCircuitBreaker;
}
public void setBlockedByCircuitBreaker(boolean blockedByCircuitBreaker) {
this.blockedByCircuitBreaker = blockedByCircuitBreaker;
}
public CircuitBreakerStatus getCircuitBreakerStatus() {
return circuitBreakerStatus;
}
public void setCircuitBreakerStatus(CircuitBreakerStatus circuitBreakerStatus) {
this.circuitBreakerStatus = circuitBreakerStatus;
}
@Override
public String toString() {
return "MethodInvocationResult [executionTime=" + executionTime + ", successfullyTerminated=" + successfullyTerminated + ", blockedByCircuitBreaker="
+ blockedByCircuitBreaker + ", circuitBreakerStatus=" + circuitBreakerStatus + ", returnObject=" + returnObject + ", failureWhileExecution="
+ failureWhileExecution + ", cause=" + cause + "]";
}
}