Skip to content
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,8 @@ public static PersonalizationValue ofPersonalization(String personalizationId) {
* @return A {@link ParameterValue.ExperimentValue} instance.
*/
public static ExperimentValue ofExperiment(String experimentId,
List<ExperimentVariantValue> variantValues) {
return new ExperimentValue(experimentId, variantValues);
List<ExperimentVariantValue> variantValues, Double exposurePercent) {
Comment thread
rathovarun1032 marked this conversation as resolved.
Outdated
return new ExperimentValue(experimentId, variantValues, exposurePercent);
}

abstract ParameterValueResponse toParameterValueResponse();
Expand Down Expand Up @@ -119,7 +119,7 @@ static ParameterValue fromParameterValueResponse(
.map(evv -> new ExperimentVariantValue(
evv.getVariantId(), evv.getValue(), evv.getNoChange()))
.collect(toList());
return ParameterValue.ofExperiment(ev.getExperimentId(), variantValues);
return ParameterValue.ofExperiment(ev.getExperimentId(), variantValues, ev.getExposurePercent());
}
return ParameterValue.of(parameterValueResponse.getValue());
}
Expand Down Expand Up @@ -400,10 +400,13 @@ public int hashCode() {
public static final class ExperimentValue extends ParameterValue {
private final String experimentId;
private final List<ExperimentVariantValue> variantValues;
private final Double exposurePercent;
Comment thread
rathovarun1032 marked this conversation as resolved.
Outdated

private ExperimentValue(String experimentId, List<ExperimentVariantValue> variantValues) {

private ExperimentValue(String experimentId, List<ExperimentVariantValue> variantValues, Double exposurePercent) {
this.experimentId = experimentId;
this.variantValues = variantValues;
this.exposurePercent = exposurePercent;
}

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,8 @@
import java.util.List;
import java.util.Map;

import org.checkerframework.checker.units.qual.K;
Comment thread
rathovarun1032 marked this conversation as resolved.
Outdated

/**
* The Data Transfer Object for parsing Remote Config template responses from the
* Remote Config service.
Expand Down Expand Up @@ -288,6 +290,9 @@ public static final class ExperimentValueResponse {
@Key("variantValue")
private List<ExperimentVariantValueResponse> experimentVariantValues;

@Key("exposurePercent")
private Double exposurePercent;

public String getExperimentId() {
return experimentId;
}
Expand All @@ -296,6 +301,11 @@ public List<ExperimentVariantValueResponse> getExperimentVariantValues() {
return experimentVariantValues;
}

public Double getExposurePercent() {
return exposurePercent;
}


Comment thread
rathovarun1032 marked this conversation as resolved.
Outdated
public ExperimentValueResponse setExperimentId(String experimentId) {
this.experimentId = experimentId;
return this;
Expand All @@ -306,6 +316,11 @@ public ExperimentValueResponse setExperimentVariantValues(
this.experimentVariantValues = experimentVariantValues;
return this;
}

public ExperimentValueResponse setExposurePercent(Double exposurePercent) {
this.exposurePercent = exposurePercent;
return this;
}
}

/**
Expand Down
Comment thread
rathovarun1032 marked this conversation as resolved.
Original file line number Diff line number Diff line change
Expand Up @@ -64,7 +64,7 @@ public void testCreateExperimentValue() {
ParameterValue.ofExperiment("experiment_1", ImmutableList.of(
ExperimentVariantValue.of("variant_1", "value_1"),
ExperimentVariantValue.ofNoChange("variant_2")
));
), 10.0);
Comment thread
rathovarun1032 marked this conversation as resolved.

assertEquals("experiment_1", parameterValue.getExperimentId());
assertEquals(2, parameterValue.getExperimentVariantValues().size());
Expand Down Expand Up @@ -116,19 +116,19 @@ public void testEquality() {
ParameterValue.ExperimentValue experimentValueOne =
ParameterValue.ofExperiment("experiment_1", ImmutableList.of(
ExperimentVariantValue.of("variant_1", "value_1")
));
), 10.0);
ParameterValue.ExperimentValue experimentValueTwo =
ParameterValue.ofExperiment("experiment_1", ImmutableList.of(
ExperimentVariantValue.of("variant_1", "value_1")
));
), 10.0);
ParameterValue.ExperimentValue experimentValueThree =
ParameterValue.ofExperiment("experiment_2", ImmutableList.of(
ExperimentVariantValue.of("variant_1", "value_1")
));
), 10.0);
ParameterValue.ExperimentValue experimentValueFour =
ParameterValue.ofExperiment("experiment_1", ImmutableList.of(
ExperimentVariantValue.of("variant_2", "value_2")
));
), 10.0);
Comment thread
rathovarun1032 marked this conversation as resolved.
Outdated

assertEquals(experimentValueOne, experimentValueTwo);
assertNotEquals(experimentValueOne, experimentValueThree);
Expand Down
Loading