Skip to content

Commit 32ea00d

Browse files
committed
polish
1 parent c280a3e commit 32ea00d

File tree

10 files changed

+109
-89
lines changed

10 files changed

+109
-89
lines changed

client/src/main/java/io/split/client/api/SplitView.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public class SplitView {
2828
public List<String> sets;
2929
public String defaultTreatment;
3030
public boolean impressionsDisabled;
31-
public List<Prerequisites> prerequisites;
31+
public String prerequisites;
3232

3333
public static SplitView fromParsedSplit(ParsedSplit parsedSplit) {
3434
SplitView splitView = new SplitView();
@@ -50,7 +50,7 @@ public static SplitView fromParsedSplit(ParsedSplit parsedSplit) {
5050
splitView.treatments = new ArrayList<String>(treatments);
5151
splitView.configs = parsedSplit.configurations() == null? Collections.<String, String>emptyMap() : parsedSplit.configurations() ;
5252
splitView.impressionsDisabled = parsedSplit.impressionsDisabled();
53-
splitView.prerequisites = parsedSplit.prerequisites() != null ? parsedSplit.prerequisites(): new ArrayList<>();
53+
splitView.prerequisites = parsedSplit.prerequisites() != null ? parsedSplit.prerequisites().toString(): "";
5454

5555
return splitView;
5656
}

client/src/main/java/io/split/engine/evaluator/EvaluatorImp.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44
import io.split.client.exceptions.ChangeNumberExceptionWrapper;
55
import io.split.engine.experiments.ParsedCondition;
66
import io.split.engine.experiments.ParsedSplit;
7-
import io.split.engine.matchers.PrerequisitesMatcher;
87
import io.split.engine.splitter.Splitter;
98
import io.split.grammar.Treatments;
109
import io.split.storages.RuleBasedSegmentCacheConsumer;
@@ -28,7 +27,6 @@ public class EvaluatorImp implements Evaluator {
2827
private final RuleBasedSegmentCacheConsumer _ruleBasedSegmentCacheConsumer;
2928
private final EvaluationContext _evaluationContext;
3029
private final SplitCacheConsumer _splitCacheConsumer;
31-
private PrerequisitesMatcher _prerequisitesMatcher;
3230

3331
public EvaluatorImp(SplitCacheConsumer splitCacheConsumer, SegmentCacheConsumer segmentCache,
3432
RuleBasedSegmentCacheConsumer ruleBasedSegmentCacheConsumer) {
@@ -102,7 +100,7 @@ private TreatmentLabelAndChangeNumber getTreatment(String matchingKey, String bu
102100

103101
String bk = (bucketingKey == null) ? matchingKey : bucketingKey;
104102

105-
if (!_prerequisitesMatcher.match(matchingKey, bk, attributes, _evaluationContext)) {
103+
if (!parsedSplit.prerequisites().match(matchingKey, bk, attributes, _evaluationContext)) {
106104
return new TreatmentLabelAndChangeNumber(
107105
parsedSplit.defaultTreatment(),
108106
Labels.PREREQUISITES_NOT_MET,
@@ -169,7 +167,6 @@ private TreatmentLabelAndChangeNumber evaluateParsedSplit(String matchingKey, St
169167
if (parsedSplit == null) {
170168
return new TreatmentLabelAndChangeNumber(Treatments.CONTROL, Labels.DEFINITION_NOT_FOUND);
171169
}
172-
_prerequisitesMatcher = new PrerequisitesMatcher(parsedSplit.prerequisites());
173170
return getTreatment(matchingKey, bucketingKey, parsedSplit, attributes);
174171
} catch (ChangeNumberExceptionWrapper e) {
175172
_log.error("Evaluator Exception", e.wrappedException());

client/src/main/java/io/split/engine/experiments/ParsedSplit.java

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
package io.split.engine.experiments;
22

33
import com.google.common.collect.ImmutableList;
4-
import io.split.client.dtos.Prerequisites;
54
import io.split.engine.matchers.AttributeMatcher;
5+
import io.split.engine.matchers.PrerequisitesMatcher;
66
import io.split.engine.matchers.RuleBasedSegmentMatcher;
77
import io.split.engine.matchers.UserDefinedSegmentMatcher;
88

@@ -35,7 +35,7 @@ public class ParsedSplit {
3535
private final Map<String, String> _configurations;
3636
private final HashSet<String> _flagSets;
3737
private final boolean _impressionsDisabled;
38-
private List<Prerequisites> _prerequisites;
38+
private PrerequisitesMatcher _prerequisites;
3939

4040
public static ParsedSplit createParsedSplitForTests(
4141
String feature,
@@ -48,7 +48,7 @@ public static ParsedSplit createParsedSplitForTests(
4848
int algo,
4949
HashSet<String> flagSets,
5050
boolean impressionsDisabled,
51-
List<Prerequisites> prerequisites
51+
PrerequisitesMatcher prerequisites
5252
) {
5353
return new ParsedSplit(
5454
feature,
@@ -80,7 +80,7 @@ public static ParsedSplit createParsedSplitForTests(
8080
Map<String, String> configurations,
8181
HashSet<String> flagSets,
8282
boolean impressionsDisabled,
83-
List<Prerequisites> prerequisites
83+
PrerequisitesMatcher prerequisites
8484
) {
8585
return new ParsedSplit(
8686
feature,
@@ -114,7 +114,7 @@ public ParsedSplit(
114114
Map<String, String> configurations,
115115
HashSet<String> flagSets,
116116
boolean impressionsDisabled,
117-
List<Prerequisites> prerequisites
117+
PrerequisitesMatcher prerequisites
118118
) {
119119
_split = feature;
120120
_seed = seed;
@@ -179,7 +179,7 @@ public Map<String, String> configurations() {
179179
public boolean impressionsDisabled() {
180180
return _impressionsDisabled;
181181
}
182-
public List<Prerequisites> prerequisites() { return _prerequisites; }
182+
public PrerequisitesMatcher prerequisites() { return _prerequisites; }
183183

184184
@Override
185185
public int hashCode() {

client/src/main/java/io/split/engine/experiments/SplitParser.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import io.split.client.dtos.Partition;
77
import io.split.client.dtos.Split;
88
import io.split.engine.matchers.CombiningMatcher;
9+
import io.split.engine.matchers.PrerequisitesMatcher;
910
import org.slf4j.Logger;
1011
import org.slf4j.LoggerFactory;
1112

@@ -69,6 +70,6 @@ private ParsedSplit parseWithoutExceptionHandling(Split split) {
6970
split.configurations,
7071
split.sets,
7172
split.impressionsDisabled,
72-
split.prerequisites);
73+
new PrerequisitesMatcher(split.prerequisites));
7374
}
7475
}

client/src/main/java/io/split/engine/matchers/PrerequisitesMatcher.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,10 @@ public boolean match(Object matchValue, String bucketingKey, Map<String, Object>
4343
public String toString() {
4444
StringBuilder bldr = new StringBuilder();
4545
bldr.append("prerequisites: ");
46-
bldr.append(this._prerequisites.stream().map(pr -> pr.featureFlagName + " " +
47-
pr.treatments.toString()).map(Object::toString).collect(Collectors.joining(", ")));
46+
if (this._prerequisites != null) {
47+
bldr.append(this._prerequisites.stream().map(pr -> pr.featureFlagName + " " +
48+
pr.treatments.toString()).map(Object::toString).collect(Collectors.joining(", ")));
49+
}
4850
return bldr.toString();
4951
}
5052

0 commit comments

Comments
 (0)