| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent 88d4b58 commit cd24728
5 files changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -19,8 +19,15 @@ | |||
| 19 | 19 | import static com.google.common.base.Preconditions.checkNotNull; | |
| 20 | 20 | ||
| 21 | 21 | import com.google.firebase.internal.NonNull; | |
| 22 | + import com.google.firebase.internal.Nullable; | ||
| 23 | + import com.google.firebase.remoteconfig.internal.TemplateResponse.ExperimentValueResponse; | ||
| 24 | + import com.google.firebase.remoteconfig.internal.TemplateResponse.ExperimentVariantValueResponse; | ||
| 22 | 25 | import com.google.firebase.remoteconfig.internal.TemplateResponse.ParameterValueResponse; | |
| 26 | + import com.google.firebase.remoteconfig.internal.TemplateResponse.PersonalizationValueResponse; | ||
| 27 | + import com.google.firebase.remoteconfig.internal.TemplateResponse.RolloutValueResponse; | ||
| 23 | 28 | ||
| 29 | + import java.util.ArrayList; | ||
| 30 | + import java.util.List; | ||
| 24 | 31 | import java.util.Objects; | |
| 25 | 32 | ||
| 26 | 33 | /** | |
@@ -47,6 +54,40 @@ public static InAppDefault inAppDefault() { | |||
| 47 | 54 | return new InAppDefault(); | |
| 48 | 55 | } | |
| 49 | 56 | ||
| 57 | + /** | ||
| 58 | + * Creates a new {@link ParameterValue.RolloutValue} instance. | ||
| 59 | + * | ||
| 60 | + * @param rolloutId The rollout ID. | ||
| 61 | + * @param value The value of the rollout. | ||
| 62 | + * @param percent The percentage of the rollout. | ||
| 63 | + * @return A {@link ParameterValue.RolloutValue} instance. | ||
| 64 | + */ | ||
| 65 | + public static RolloutValue ofRollout(String rolloutId, String value, double percent) { | ||
| 66 | + return new RolloutValue(rolloutId, value, percent); | ||
| 67 | + } | ||
| 68 | + | ||
| 69 | + /** | ||
| 70 | + * Creates a new {@link ParameterValue.PersonalizationValue} instance. | ||
| 71 | + * | ||
| 72 | + * @param personalizationId The personalization ID. | ||
| 73 | + * @return A {@link ParameterValue.PersonalizationValue} instance. | ||
| 74 | + */ | ||
| 75 | + public static PersonalizationValue ofPersonalization(String personalizationId) { | ||
| 76 | + return new PersonalizationValue(personalizationId); | ||
| 77 | + } | ||
| 78 | + | ||
| 79 | + /** | ||
| 80 | + * Creates a new {@link ParameterValue.ExperimentValue} instance. | ||
| 81 | + * | ||
| 82 | + * @param experimentId The experiment ID. | ||
| 83 | + * @param variantValues The list of experiment variant values. | ||
| 84 | + * @return A {@link ParameterValue.ExperimentValue} instance. | ||
| 85 | + */ | ||
| 86 | + public static ExperimentValue ofExperiment(String experimentId, | ||
| 87 | + List<ExperimentVariantValue> variantValues) { | ||
| 88 | + return new ExperimentValue(experimentId, variantValues); | ||
| 89 | + } | ||
| 90 | + | ||
| 50 | 91 | abstract ParameterValueResponse toParameterValueResponse(); | |
| 51 | 92 | ||
| 52 | 93 | static ParameterValue fromParameterValueResponse( | |
@@ -55,6 +96,24 @@ static ParameterValue fromParameterValueResponse( | |||
| 55 | 96 | if (parameterValueResponse.isUseInAppDefault()) { | |
| 56 | 97 | return ParameterValue.inAppDefault(); | |
| 57 | 98 | } | |
| 99 | + if (parameterValueResponse.getRolloutValue() != null) { | ||
| 100 | + RolloutValueResponse rv = parameterValueResponse.getRolloutValue(); | ||
| 101 | + return ParameterValue.ofRollout(rv.getRolloutId(), rv.getValue(), rv.getPercent()); | ||
| 102 | + } | ||
| 103 | + if (parameterValueResponse.getPersonalizationValue() != null) { | ||
| 104 | + PersonalizationValueResponse pv = parameterValueResponse.getPersonalizationValue(); | ||
| 105 | + return ParameterValue.ofPersonalization(pv.getPersonalizationId()); | ||
| 106 | + } | ||
| 107 | + if (parameterValueResponse.getExperimentValue() != null) { | ||
| 108 | + ExperimentValueResponse ev = parameterValueResponse.getExperimentValue(); | ||
| 109 | + List<ExperimentVariantValue> variantValues = new ArrayList<>(); | ||
| 110 | + for (ExperimentVariantValueResponse evv : ev.getExperimentVariantValues()) { | ||
| 111 | + variantValues.add( | ||
| 112 | + new ExperimentVariantValue(evv.getVariantId(), evv.getValue(), | ||
| 113 | + evv.getNoChange())); | ||
| 114 | + } | ||
| 115 | + return ParameterValue.ofExperiment(ev.getExperimentId(), variantValues); | ||
| 116 | + } | ||
| 58 | 117 | return ParameterValue.of(parameterValueResponse.getValue()); | |
| 59 | 118 | } | |
| 60 | 119 | ||
@@ -124,4 +183,220 @@ public boolean equals(Object o) { | |||
| 124 | 183 | return true; | |
| 125 | 184 | } | |
| 126 | 185 | } | |
| 186 | + | ||
| 187 | + /** | ||
| 188 | + * Represents a Rollout value. | ||
| 189 | + */ | ||
| 190 | + public static final class RolloutValue extends ParameterValue { | ||
| 191 | + private final String rolloutId; | ||
| 192 | + private final String value; | ||
| 193 | + private final double percent; | ||
| 194 | + | ||
| 195 | + private RolloutValue(String rolloutId, String value, double percent) { | ||
| 196 | + this.rolloutId = rolloutId; | ||
| 197 | + this.value = value; | ||
| 198 | + this.percent = percent; | ||
| 199 | + } | ||
| 200 | + | ||
| 201 | + public String getRolloutId() { | ||
| 202 | + return rolloutId; | ||
| 203 | + } | ||
| 204 | + | ||
| 205 | + public String getValue() { | ||
| 206 | + return value; | ||
| 207 | + } | ||
| 208 | + | ||
| 209 | + public double getPercent() { | ||
| 210 | + return percent; | ||
| 211 | + } | ||
| 212 | + | ||
| 213 | + @Override | ||
| 214 | + ParameterValueResponse toParameterValueResponse() { | ||
| 215 | + return new ParameterValueResponse().setRolloutValue( | ||
| 216 | + new RolloutValueResponse() | ||
| 217 | + .setRolloutId(this.rolloutId) | ||
| 218 | + .setValue(this.value) | ||
| 219 | + .setPercent(this.percent)); | ||
| 220 | + } | ||
| 221 | + | ||
| 222 | + @Override | ||
| 223 | + public boolean equals(Object o) { | ||
| 224 | + if (this == o) { | ||
| 225 | + return true; | ||
| 226 | + } | ||
| 227 | + if (o == null || getClass() != o.getClass()) { | ||
| 228 | + return false; | ||
| 229 | + } | ||
| 230 | + RolloutValue that = (RolloutValue) o; | ||
| 231 | + return Double.compare(that.percent, percent) == 0 | ||
| 232 | + && Objects.equals(rolloutId, that.rolloutId) | ||
| 233 | + && Objects.equals(value, that.value); | ||
| 234 | + } | ||
| 235 | + | ||
| 236 | + @Override | ||
| 237 | + public int hashCode() { | ||
| 238 | + return Objects.hash(rolloutId, value, percent); | ||
| 239 | + } | ||
| 240 | + } | ||
| 241 | + | ||
| 242 | + /** | ||
| 243 | + * Represents a Personalization value. | ||
| 244 | + */ | ||
| 245 | + public static final class PersonalizationValue extends ParameterValue { | ||
| 246 | + private final String personalizationId; | ||
| 247 | + | ||
| 248 | + private PersonalizationValue(String personalizationId) { | ||
| 249 | + this.personalizationId = personalizationId; | ||
| 250 | + } | ||
| 251 | + | ||
| 252 | + public String getPersonalizationId() { | ||
| 253 | + return personalizationId; | ||
| 254 | + } | ||
| 255 | + | ||
| 256 | + @Override | ||
| 257 | + ParameterValueResponse toParameterValueResponse() { | ||
| 258 | + return new ParameterValueResponse().setPersonalizationValue( | ||
| 259 | + new PersonalizationValueResponse() | ||
| 260 | + .setPersonalizationId(this.personalizationId)); | ||
| 261 | + } | ||
| 262 | + | ||
| 263 | + @Override | ||
| 264 | + public boolean equals(Object o) { | ||
| 265 | + if (this == o) { | ||
| 266 | + return true; | ||
| 267 | + } | ||
| 268 | + if (o == null || getClass() != o.getClass()) { | ||
| 269 | + return false; | ||
| 270 | + } | ||
| 271 | + PersonalizationValue that = (PersonalizationValue) o; | ||
| 272 | + return Objects.equals(personalizationId, that.personalizationId); | ||
| 273 | + } | ||
| 274 | + | ||
| 275 | + @Override | ||
| 276 | + public int hashCode() { | ||
| 277 | + return Objects.hash(personalizationId); | ||
| 278 | + } | ||
| 279 | + } | ||
| 280 | + | ||
| 281 | + /** | ||
| 282 | + * Represents a specific variant within an Experiment. | ||
| 283 | + */ | ||
| 284 | + public static final class ExperimentVariantValue { | ||
| 285 | + private final String variantId; | ||
| 286 | + private final String value; | ||
| 287 | + private final boolean noChange; | ||
| 288 | + | ||
| 289 | + ExperimentVariantValue(String variantId, String value, Boolean noChange) { | ||
| 290 | + this.variantId = variantId; | ||
| 291 | + this.value = value; | ||
| 292 | + this.noChange = Boolean.TRUE.equals(noChange); | ||
| 293 | + } | ||
| 294 | + | ||
| 295 | + /** | ||
| 296 | + * Creates a new {@link ExperimentVariantValue} instance. | ||
| 297 | + * | ||
| 298 | + * @param variantId The variant ID. | ||
| 299 | + * @param value The value of the variant. | ||
| 300 | + * @return A {@link ExperimentVariantValue} instance. | ||
| 301 | + */ | ||
| 302 | + public static ExperimentVariantValue of(String variantId, String value) { | ||
| 303 | + return new ExperimentVariantValue(variantId, value, false); | ||
| 304 | + } | ||
| 305 | + | ||
| 306 | + /** | ||
| 307 | + * Creates a new {@link ExperimentVariantValue} instance. | ||
| 308 | + * | ||
| 309 | + * @param variantId The variant ID. | ||
| 310 | + * @return A {@link ExperimentVariantValue} instance. | ||
| 311 | + */ | ||
| 312 | + public static ExperimentVariantValue ofNoChange(String variantId) { | ||
| 313 | + return new ExperimentVariantValue(variantId, null, true); | ||
| 314 | + } | ||
| 315 | + | ||
| 316 | + public String getVariantId() { | ||
| 317 | + return variantId; | ||
| 318 | + } | ||
| 319 | + | ||
| 320 | + @Nullable | ||
| 321 | + public String getValue() { | ||
| 322 | + return value; | ||
| 323 | + } | ||
| 324 | + | ||
| 325 | + public boolean isNoChange() { | ||
| 326 | + return noChange; | ||
| 327 | + } | ||
| 328 | + | ||
| 329 | + @Override | ||
| 330 | + public boolean equals(Object o) { | ||
| 331 | + if (this == o) { | ||
| 332 | + return true; | ||
| 333 | + } | ||
| 334 | + if (o == null || getClass() != o.getClass()) { | ||
| 335 | + return false; | ||
| 336 | + } | ||
| 337 | + ExperimentVariantValue that = (ExperimentVariantValue) o; | ||
| 338 | + return noChange == that.noChange | ||
| 339 | + && Objects.equals(variantId, that.variantId) | ||
| 340 | + && Objects.equals(value, that.value); | ||
| 341 | + } | ||
| 342 | + | ||
| 343 | + @Override | ||
| 344 | + public int hashCode() { | ||
| 345 | + return Objects.hash(variantId, value, noChange); | ||
| 346 | + } | ||
| 347 | + } | ||
| 348 | + | ||
| 349 | + /** | ||
| 350 | + * Represents an Experiment value. | ||
| 351 | + */ | ||
| 352 | + public static final class ExperimentValue extends ParameterValue { | ||
| 353 | + private final String experimentId; | ||
| 354 | + private final List<ExperimentVariantValue> variantValues; | ||
| 355 | + | ||
| 356 | + private ExperimentValue(String experimentId, List<ExperimentVariantValue> variantValues) { | ||
| 357 | + this.experimentId = experimentId; | ||
| 358 | + this.variantValues = variantValues; | ||
| 359 | + } | ||
| 360 | + | ||
| 361 | + public String getExperimentId() { | ||
| 362 | + return experimentId; | ||
| 363 | + } | ||
| 364 | + | ||
| 365 | + public List<ExperimentVariantValue> getExperimentVariantValues() { | ||
| 366 | + return variantValues; | ||
| 367 | + } | ||
| 368 | + | ||
| 369 | + @Override | ||
| 370 | + ParameterValueResponse toParameterValueResponse() { | ||
| 371 | + List<ExperimentVariantValueResponse> variantValueResponses = new ArrayList<>(); | ||
| 372 | + for (ExperimentVariantValue variantValue : variantValues) { | ||
| 373 | + variantValueResponses.add(new ExperimentVariantValueResponse() | ||
| 374 | + .setVariantId(variantValue.getVariantId()) | ||
| 375 | + .setValue(variantValue.getValue()) | ||
| 376 | + .setNoChange(variantValue.isNoChange())); | ||
| 377 | + } | ||
| 378 | + return new ParameterValueResponse().setExperimentValue( | ||
| 379 | + new ExperimentValueResponse() | ||
| 380 | + .setExperimentId(this.experimentId) | ||
| 381 | + .setExperimentVariantValues(variantValueResponses)); | ||
| 382 | + } | ||
| 383 | + | ||
| 384 | + @Override | ||
| 385 | + public boolean equals(Object o) { | ||
| 386 | + if (this == o) { | ||
| 387 | + return true; | ||
| 388 | + } | ||
| 389 | + if (o == null || getClass() != o.getClass()) { | ||
| 390 | + return false; | ||
| 391 | + } | ||
| 392 | + ExperimentValue that = (ExperimentValue) o; | ||
| 393 | + return Objects.equals(experimentId, that.experimentId) | ||
| 394 | + && Objects.equals(variantValues, that.variantValues); | ||
| 395 | + } | ||
| 396 | + | ||
| 397 | + @Override | ||
| 398 | + public int hashCode() { | ||
| 399 | + return Objects.hash(experimentId, variantValues); | ||
| 400 | + } | ||
| 401 | + } | ||
| 127 | 402 | } | |
| Back | FazBrowse Home | New Git URL |
0 commit comments