1 package net.secodo.jcircuitbreaker.breakstrategy;
2
3 import net.secodo.jcircuitbreaker.breakstrategy.impl.dsl.DslAndStrategy;
4 import net.secodo.jcircuitbreaker.breakstrategy.impl.dsl.DslOrStrategy;
5
6
7
8
9
10
11 public class SimpleStrategyDsl {
12 protected SimpleStrategyDsl() {
13 }
14
15
16
17
18
19
20
21
22
23 @SuppressWarnings({ "unchecked", "rawtypes" })
24 public static <R> BreakStrategy<R> anyOf(BreakStrategy... breakStrategies) {
25 BreakStrategy<R> resultingStrategy = breakStrategies[0];
26
27 for (int i = 1; i < breakStrategies.length; i++) {
28 resultingStrategy = new DslOrStrategy<R>(resultingStrategy, breakStrategies[i]);
29 }
30
31 return resultingStrategy;
32 }
33
34
35
36
37
38
39
40
41 @SuppressWarnings({ "unchecked", "rawtypes" })
42 public static <R> BreakStrategy<R> allOf(BreakStrategy... breakStrategies) {
43 BreakStrategy<R> resultingStrategy = breakStrategies[0];
44
45 for (int i = 1; i < breakStrategies.length; i++) {
46 resultingStrategy = new DslAndStrategy<R>(resultingStrategy, breakStrategies[i]);
47 }
48
49 return resultingStrategy;
50 }
51 }