1 package io.getunleash;
2
3 import io.getunleash.lang.Nullable;
4 import io.getunleash.variant.VariantDefinition;
5 import java.util.*;
6 import javax.annotation.Nonnull;
7
8 public final class ActivationStrategy {
9 private final String name;
10 private final Map<String, String> parameters;
11 private final List<Constraint> constraints;
12 private final List<Integer> segments;
13 private final List<VariantDefinition> variants;
14
15 public ActivationStrategy(String name, @Nullable Map<String, String> parameters) {
16 this(
17 name,
18 parameters,
19 Collections.emptyList(),
20 Collections.emptyList(),
21 Collections.emptyList());
22 }
23
24 public ActivationStrategy(
25 String name,
26 @Nullable Map<String, String> parameters,
27 List<Constraint> constraints,
28 List<Integer> segments,
29 List<VariantDefinition> variants) {
30 this.name = name;
31 this.parameters = Optional.ofNullable(parameters).orElseGet(Collections::emptyMap);
32 this.constraints = Optional.ofNullable(constraints).orElseGet(Collections::emptyList);
33 this.segments = Optional.ofNullable(segments).orElseGet(Collections::emptyList);
34 this.variants = Optional.ofNullable(variants).orElseGet(Collections::emptyList);
35 }
36
37 public String getName() {
38 return name;
39 }
40
41 public List<Integer> getSegments() {
42 return segments;
43 }
44
45 public Map<String, String> getParameters() {
46 return parameters;
47 }
48
49 public List<Constraint> getConstraints() {
50 return constraints;
51 }
52
53 @Nonnull
54 public List<VariantDefinition> getVariants() {
55
56 return variants;
57 }
58 }
59