@@ -73,7 +73,6 @@ fun FeaturevisorInstance.isEnabled(featureKey: FeatureKey, context: Context = em
7373 return evaluation.enabled == true
7474}
7575
76- @Suppress(" UNREACHABLE_CODE" )
7776fun FeaturevisorInstance.evaluateVariation (featureKey : FeatureKey , context : Context = emptyMap()): Evaluation {
7877 var evaluation: Evaluation
7978 try {
@@ -125,7 +124,7 @@ fun FeaturevisorInstance.evaluateVariation(featureKey: FeatureKey, context: Cont
125124 return evaluation
126125 }
127126
128- if (feature.variations.isNullOrEmpty ()) {
127+ if (feature.getVariations().isEmpty ()) {
129128 // no variations
130129 evaluation = Evaluation (
131130 featureKey = featureKey,
@@ -141,7 +140,7 @@ fun FeaturevisorInstance.evaluateVariation(featureKey: FeatureKey, context: Cont
141140 // forced
142141 val force = findForceFromFeature(feature, context, datafileReader)
143142 if (force != null ) {
144- val variation = feature.variations .firstOrNull { it.value == force.variation }
143+ val variation = feature.getVariations() .firstOrNull { it.value == force.variation }
145144
146145 if (variation != null ) {
147146 evaluation = Evaluation (
@@ -160,18 +159,17 @@ fun FeaturevisorInstance.evaluateVariation(featureKey: FeatureKey, context: Cont
160159 val bucketValue = getBucketValue(feature, finalContext)
161160
162161 val matchedTrafficAndAllocation = getMatchedTrafficAndAllocation(
163- feature.traffic ,
162+ feature.getTraffic() ,
164163 finalContext,
165164 bucketValue,
166165 datafileReader,
167- logger
168166 )
169167
170168 val matchedTraffic = matchedTrafficAndAllocation.matchedTraffic
171169
172170 // override from rule
173171 if (matchedTraffic?.variation != null ) {
174- val variation = feature.variations .firstOrNull { it.value == matchedTraffic.variation }
172+ val variation = feature.getVariations() .firstOrNull { it.value == matchedTraffic.variation }
175173 if (variation != null ) {
176174 evaluation = Evaluation (
177175 featureKey = feature.key,
@@ -191,7 +189,7 @@ fun FeaturevisorInstance.evaluateVariation(featureKey: FeatureKey, context: Cont
191189
192190 // regular allocation
193191 if (matchedAllocation != null ) {
194- val variation = feature.variations? .firstOrNull { it.value == matchedAllocation.variation }
192+ val variation = feature.getVariations() .firstOrNull { it.value == matchedAllocation.variation }
195193 if (variation != null ) {
196194 evaluation = Evaluation (
197195 featureKey = feature.key,
@@ -229,7 +227,6 @@ fun FeaturevisorInstance.evaluateVariation(featureKey: FeatureKey, context: Cont
229227}
230228
231229
232- @Suppress(" UNREACHABLE_CODE" )
233230fun FeaturevisorInstance.evaluateFlag (featureKey : FeatureKey , context : Context = emptyMap()): Evaluation {
234231
235232 var evaluation: Evaluation
@@ -301,8 +298,8 @@ fun FeaturevisorInstance.evaluateFlag(featureKey: FeatureKey, context: Context =
301298 }
302299
303300 // required
304- if (feature.required .isNullOrEmpty().not ()) {
305- val requiredFeaturesAreEnabled = feature.required ?.all { item ->
301+ if (feature.getRequired() .isNullOrEmpty().not ()) {
302+ val requiredFeaturesAreEnabled = feature.getRequired() ?.all { item ->
306303 var requiredKey: FeatureKey ? = null
307304 var requiredVariation: VariationValue ? = null
308305 when (item) {
@@ -347,7 +344,7 @@ fun FeaturevisorInstance.evaluateFlag(featureKey: FeatureKey, context: Context =
347344 val bucketValue = getBucketValue(feature = feature, context = finalContext)
348345
349346 val matchedTraffic = getMatchedTraffic(
350- traffic = feature.traffic ,
347+ traffic = feature.getTraffic() ,
351348 context = finalContext,
352349 datafileReader = datafileReader,
353350 )
@@ -440,7 +437,6 @@ fun FeaturevisorInstance.evaluateFlag(featureKey: FeatureKey, context: Context =
440437 }
441438}
442439
443- @Suppress(" UNREACHABLE_CODE" )
444440fun FeaturevisorInstance.evaluateVariable (
445441 featureKey : FeatureKey ,
446442 variableKey : VariableKey ,
@@ -497,7 +493,7 @@ fun FeaturevisorInstance.evaluateVariable(
497493 return evaluation
498494 }
499495
500- val variableSchema = feature.variablesSchema? .firstOrNull { variableSchema ->
496+ val variableSchema = feature.getVariablesSchema() .firstOrNull { variableSchema ->
501497 variableSchema.key == variableKey
502498 }
503499
@@ -537,11 +533,10 @@ fun FeaturevisorInstance.evaluateVariable(
537533 val bucketValue = getBucketValue(feature, finalContext)
538534
539535 val matchedTrafficAndAllocation = getMatchedTrafficAndAllocation(
540- traffic = feature.traffic ,
536+ traffic = feature.getTraffic() ,
541537 context = finalContext,
542538 bucketValue = bucketValue,
543539 datafileReader = datafileReader,
544- logger = logger
545540 )
546541
547542 matchedTrafficAndAllocation.matchedTraffic?.let { matchedTraffic ->
@@ -571,7 +566,7 @@ fun FeaturevisorInstance.evaluateVariable(
571566 matchedAllocation.variation
572567 }
573568
574- val variation = feature.variations? .firstOrNull { variation ->
569+ val variation = feature.getVariations() .firstOrNull { variation ->
575570 variation.value == variationValue
576571 }
577572
@@ -654,10 +649,10 @@ fun FeaturevisorInstance.evaluateVariable(
654649
655650private fun FeaturevisorInstance.getBucketKey (feature : Feature , context : Context ): BucketKey {
656651 val featureKey = feature.key
657- var type: String
658- var attributeKeys: List <AttributeKey >
652+ val type: String
653+ val attributeKeys: List <AttributeKey >
659654
660- when (val bucketBy = feature.bucketBy ) {
655+ when (val bucketBy = feature.getBucketBy() ) {
661656 is BucketBy .Single -> {
662657 type = " plain"
663658 attributeKeys = listOf (bucketBy.bucketBy)
0 commit comments