1 package net.secodo.jcircuitbreaker.breakstrategy.impl.dsl; 2 3 import net.secodo.jcircuitbreaker.breaker.execution.ExecutionContext; 4 import net.secodo.jcircuitbreaker.breakstrategy.BreakStrategy; 5 import net.secodo.jcircuitbreaker.task.Task; 6 7 8 public class DslAndStrategy<R> implements BreakStrategy<R> { 9 private final BreakStrategy<R> strategyA; 10 private final BreakStrategy<R> strategyB; 11 12 public DslAndStrategy(BreakStrategy<R> strategyA, BreakStrategy<R> strategyB) { 13 this.strategyA = strategyA; 14 this.strategyB = strategyB; 15 } 16 17 18 @Override 19 public boolean shouldBreak(Task<R> task, ExecutionContext<R> executionContext) { 20 return strategyA.shouldBreak(task, executionContext) && strategyB.shouldBreak(task, executionContext); 21 } 22 }