DslAndStrategy.java
package net.secodo.jcircuitbreaker.breakstrategy.impl.dsl;
import net.secodo.jcircuitbreaker.breaker.execution.ExecutionContext;
import net.secodo.jcircuitbreaker.breakstrategy.BreakStrategy;
import net.secodo.jcircuitbreaker.task.Task;
public class DslAndStrategy<R> implements BreakStrategy<R> {
private final BreakStrategy<R> strategyA;
private final BreakStrategy<R> strategyB;
public DslAndStrategy(BreakStrategy<R> strategyA, BreakStrategy<R> strategyB) {
this.strategyA = strategyA;
this.strategyB = strategyB;
}
@Override
public boolean shouldBreak(Task<R> task, ExecutionContext<R> executionContext) {
return strategyA.shouldBreak(task, executionContext) && strategyB.shouldBreak(task, executionContext);
}
}