-
Notifications
You must be signed in to change notification settings - Fork 38
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Todd Baert <toddbaert@gmail.com>
- Loading branch information
Showing
5 changed files
with
84 additions
and
86 deletions.
There are no files selected for viewing
32 changes: 3 additions & 29 deletions
32
src/main/java/dev/openfeature/javasdk/EvaluationContext.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,43 +1,17 @@ | ||
package dev.openfeature.javasdk; | ||
|
||
import java.util.HashMap; | ||
import java.util.Map; | ||
|
||
@SuppressWarnings("PMD.BeanMembersShouldSerialize") | ||
public interface EvaluationContext extends Structure { | ||
String getTargetingKey(); | ||
|
||
void setTargetingKey(String targetingKey); | ||
|
||
/** | ||
* Merges two EvaluationContext objects with the second overriding the first in | ||
* Merges this EvaluationContext objects with the second overriding the this in | ||
* case of conflict. | ||
* | ||
* @param ctx1 base context | ||
* @param ctx2 overriding context | ||
* @param overridingContext overriding context | ||
* @return resulting merged context | ||
*/ | ||
static EvaluationContext merge(EvaluationContext ctx1, EvaluationContext ctx2) { | ||
if (ctx1 == null) { | ||
return ctx2; | ||
} else if (ctx2 == null) { | ||
return ctx1; | ||
} | ||
|
||
Map<String, Value> merged = new HashMap<String, Value>(); | ||
|
||
merged.putAll(ctx1.asMap()); | ||
merged.putAll(ctx2.asMap()); | ||
EvaluationContext ec = new MutableContext(merged); | ||
|
||
if (ctx1.getTargetingKey() != null && !ctx1.getTargetingKey().trim().equals("")) { | ||
ec.setTargetingKey(ctx1.getTargetingKey()); | ||
} | ||
|
||
if (ctx2.getTargetingKey() != null && !ctx2.getTargetingKey().trim().equals("")) { | ||
ec.setTargetingKey(ctx2.getTargetingKey()); | ||
} | ||
|
||
return ec; | ||
} | ||
EvaluationContext merge(EvaluationContext overridingContext); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters