From c8cfb27334f0f1b522c652a1b292460dacb2e29c Mon Sep 17 00:00:00 2001 From: Jae Kim Date: Thu, 7 Jan 2021 17:15:29 -0800 Subject: [PATCH 1/2] add comments --- .../optimizely/ab/OptimizelyUserContext.java | 12 +++++++---- .../OptimizelyDecision.java | 21 +++++++++++++++++++ 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/core-api/src/main/java/com/optimizely/ab/OptimizelyUserContext.java b/core-api/src/main/java/com/optimizely/ab/OptimizelyUserContext.java index 300d50d6f..733257f16 100644 --- a/core-api/src/main/java/com/optimizely/ab/OptimizelyUserContext.java +++ b/core-api/src/main/java/com/optimizely/ab/OptimizelyUserContext.java @@ -61,13 +61,17 @@ public String getUserId() { } public Map getAttributes() { - return new HashMap(attributes); + return attributes; } public Optimizely getOptimizely() { return optimizely; } + public OptimizelyUserContext copy() { + return new OptimizelyUserContext(optimizely, userId, attributes); + } + /** * Set an attribute for a given key. * @@ -89,7 +93,7 @@ public void setAttribute(@Nonnull String key, @Nullable Object value) { */ public OptimizelyDecision decide(@Nonnull String key, @Nonnull List options) { - return optimizely.decide(this, key, options); + return optimizely.decide(copy(), key, options); } /** @@ -114,7 +118,7 @@ public OptimizelyDecision decide(@Nonnull String key) { */ public Map decideForKeys(@Nonnull List keys, @Nonnull List options) { - return optimizely.decideForKeys(this, keys, options); + return optimizely.decideForKeys(copy(), keys, options); } /** @@ -134,7 +138,7 @@ public Map decideForKeys(@Nonnull List keys) * @return All decision results mapped by flag keys. */ public Map decideAll(@Nonnull List options) { - return optimizely.decideAll(this, options); + return optimizely.decideAll(copy(), options); } /** diff --git a/core-api/src/main/java/com/optimizely/ab/optimizelydecision/OptimizelyDecision.java b/core-api/src/main/java/com/optimizely/ab/optimizelydecision/OptimizelyDecision.java index 201324f20..b79b426d0 100644 --- a/core-api/src/main/java/com/optimizely/ab/optimizelydecision/OptimizelyDecision.java +++ b/core-api/src/main/java/com/optimizely/ab/optimizelydecision/OptimizelyDecision.java @@ -26,23 +26,44 @@ import java.util.List; public class OptimizelyDecision { + /** + * The variation key of the decision. This value will be null when decision making fails. + */ @Nullable private final String variationKey; + /** + * The boolean value indicating if the flag is enabled or not. + */ private final boolean enabled; + /** + * The collection of variables associated with the decision. + */ @Nonnull private final OptimizelyJSON variables; + /** + * The rule key of the decision. + */ @Nullable private final String ruleKey; + /** + * The flag key for which the decision has been made for. + */ @Nonnull private final String flagKey; + /** + * A copy of the user context for which the decision has been made for. + */ @Nonnull private final OptimizelyUserContext userContext; + /** + * An array of error/info messages describing why the decision has been made. + */ @Nonnull private List reasons; From 5b902de39078daa73a358cdb8185e62858583dbe Mon Sep 17 00:00:00 2001 From: Jae Kim Date: Mon, 11 Jan 2021 13:11:52 -0800 Subject: [PATCH 2/2] fix copyright headers --- .../src/main/java/com/optimizely/ab/OptimizelyUserContext.java | 2 +- .../optimizely/ab/optimizelydecision/OptimizelyDecision.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/core-api/src/main/java/com/optimizely/ab/OptimizelyUserContext.java b/core-api/src/main/java/com/optimizely/ab/OptimizelyUserContext.java index 733257f16..55f380753 100644 --- a/core-api/src/main/java/com/optimizely/ab/OptimizelyUserContext.java +++ b/core-api/src/main/java/com/optimizely/ab/OptimizelyUserContext.java @@ -1,6 +1,6 @@ /** * - * Copyright 2020, Optimizely and contributors + * Copyright 2020-2021, Optimizely and contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/core-api/src/main/java/com/optimizely/ab/optimizelydecision/OptimizelyDecision.java b/core-api/src/main/java/com/optimizely/ab/optimizelydecision/OptimizelyDecision.java index b79b426d0..1741afbcd 100644 --- a/core-api/src/main/java/com/optimizely/ab/optimizelydecision/OptimizelyDecision.java +++ b/core-api/src/main/java/com/optimizely/ab/optimizelydecision/OptimizelyDecision.java @@ -1,6 +1,6 @@ /** * - * Copyright 2020, Optimizely and contributors + * Copyright 2020-2021, Optimizely and contributors * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License.