@@ -30,13 +30,41 @@ private LocalhostSanitizer() {
3030 }
3131
3232 public static SplitChange sanitization (SplitChange splitChange ) {
33- SecureRandom random = new SecureRandom ();
34- List <Split > splitsToRemove = new ArrayList <>();
35- List <RuleBasedSegment > ruleBasedSegmentsToRemove = new ArrayList <>();
3633 splitChange = sanitizeTillAndSince (splitChange );
34+ splitChange .featureFlags .d = sanitizeFeatureFlags (splitChange .featureFlags .d );
35+ splitChange .ruleBasedSegments .d = sanitizeRuleBasedSegments (splitChange .ruleBasedSegments .d );
36+
37+ return splitChange ;
38+ }
39+
40+ private static List <RuleBasedSegment > sanitizeRuleBasedSegments (List <RuleBasedSegment > ruleBasedSegments ) {
41+ List <RuleBasedSegment > ruleBasedSegmentsToRemove = new ArrayList <>();
42+ if (ruleBasedSegments != null ) {
43+ for (RuleBasedSegment ruleBasedSegment : ruleBasedSegments ) {
44+ if (ruleBasedSegment .name == null ) {
45+ ruleBasedSegmentsToRemove .add (ruleBasedSegment );
46+ continue ;
47+ }
48+ ruleBasedSegment .trafficTypeName = sanitizeIfNullOrEmpty (ruleBasedSegment .trafficTypeName , LocalhostConstants .USER );
49+ ruleBasedSegment .status = sanitizeStatus (ruleBasedSegment .status );
50+ ruleBasedSegment .changeNumber = sanitizeChangeNumber (ruleBasedSegment .changeNumber , 0 );
51+ ruleBasedSegment .conditions = sanitizeConditions ((ArrayList <Condition >) ruleBasedSegment .conditions , false ,
52+ ruleBasedSegment .trafficTypeName );
53+ ruleBasedSegment .excluded .segments = sanitizeExcluded ((ArrayList ) ruleBasedSegment .excluded .segments );
54+ ruleBasedSegment .excluded .keys = sanitizeExcluded ((ArrayList ) ruleBasedSegment .excluded .keys );
55+ }
56+ ruleBasedSegments .removeAll (ruleBasedSegmentsToRemove );
57+ } else {
58+ ruleBasedSegments = new ArrayList <>();
59+ }
60+ return ruleBasedSegments ;
61+ }
3762
38- if (splitChange .featureFlags .d != null ) {
39- for (Split split : splitChange .featureFlags .d ) {
63+ private static List <Split > sanitizeFeatureFlags (List <Split > featureFlags ) {
64+ List <Split > splitsToRemove = new ArrayList <>();
65+ SecureRandom random = new SecureRandom ();
66+ if (featureFlags != null ) {
67+ for (Split split : featureFlags ) {
4068 if (split .name == null ) {
4169 splitsToRemove .add (split );
4270 continue ;
@@ -60,31 +88,11 @@ public static SplitChange sanitization(SplitChange splitChange) {
6088 }
6189 split .conditions = sanitizeConditions ((ArrayList <Condition >) split .conditions , false , split .trafficTypeName );
6290 }
63- splitChange . featureFlags . d .removeAll (splitsToRemove );
91+ featureFlags .removeAll (splitsToRemove );
6492 } else {
65- splitChange . featureFlags . d = new ArrayList <>();
93+ featureFlags = new ArrayList <>();
6694 }
67-
68- if (splitChange .ruleBasedSegments .d != null ) {
69- for (RuleBasedSegment ruleBasedSegment : splitChange .ruleBasedSegments .d ) {
70- if (ruleBasedSegment .name == null ) {
71- ruleBasedSegmentsToRemove .add (ruleBasedSegment );
72- continue ;
73- }
74- ruleBasedSegment .trafficTypeName = sanitizeIfNullOrEmpty (ruleBasedSegment .trafficTypeName , LocalhostConstants .USER );
75- ruleBasedSegment .status = sanitizeStatus (ruleBasedSegment .status );
76- ruleBasedSegment .changeNumber = sanitizeChangeNumber (ruleBasedSegment .changeNumber , 0 );
77- ruleBasedSegment .conditions = sanitizeConditions ((ArrayList <Condition >) ruleBasedSegment .conditions , false ,
78- ruleBasedSegment .trafficTypeName );
79- ruleBasedSegment .excluded .segments = sanitizeExcluded ((ArrayList ) ruleBasedSegment .excluded .segments );
80- ruleBasedSegment .excluded .keys = sanitizeExcluded ((ArrayList ) ruleBasedSegment .excluded .keys );
81- }
82- splitChange .ruleBasedSegments .d .removeAll (ruleBasedSegmentsToRemove );
83- } else {
84- splitChange .ruleBasedSegments .d = new ArrayList <>();
85- }
86-
87- return splitChange ;
95+ return featureFlags ;
8896 }
8997
9098 private static ArrayList <Condition > sanitizeConditions (ArrayList <Condition > conditions , boolean createPartition , String trafficTypeName ) {
0 commit comments