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