1111/**
1212 * Generates separate summary events per context. Maintains separate EventSummarizer instances
1313 * for each unique context, allowing generation of multiple summary events per flush interval.
14+ * This implementation is intended for use by client-side SDKs.
1415 * <p>
1516 * This implementation creates one summary event per context, each including the context
1617 * information, enabling "who got what when" analytics.
@@ -28,30 +29,26 @@ final class PerContextEventSummarizer implements EventSummarizerInterface {
2829 /**
2930 * Adds information about an evaluation to the appropriate context's summarizer.
3031 *
31- * @param timestamp the millisecond timestamp
32- * @param flagKey the flag key
33- * @param flagVersion the flag version, or -1 if the flag is unknown
34- * @param variation the result variation, or -1 if none
35- * @param value the result value
32+ * @param timestamp the millisecond timestamp
33+ * @param flagKey the flag key
34+ * @param flagVersion the flag version, or -1 if the flag is unknown
35+ * @param variation the result variation, or -1 if none
36+ * @param value the result value
3637 * @param defaultValue the application default value
37- * @param context the evaluation context
38+ * @param context the evaluation context
3839 */
3940 @ Override
4041 public void summarizeEvent (
41- long timestamp ,
42- String flagKey ,
43- int flagVersion ,
44- int variation ,
45- LDValue value ,
46- LDValue defaultValue ,
47- LDContext context
48- ) {
42+ long timestamp ,
43+ String flagKey ,
44+ int flagVersion ,
45+ int variation ,
46+ LDValue value ,
47+ LDValue defaultValue ,
48+ LDContext context
49+ ) {
4950 // Get or create summarizer for this context
50- EventSummarizer summarizer = summarizersByContext .get (context );
51- if (summarizer == null ) {
52- summarizer = new EventSummarizer (context );
53- summarizersByContext .put (context , summarizer );
54- }
51+ EventSummarizer summarizer = summarizersByContext .computeIfAbsent (context , EventSummarizer ::new );
5552
5653 // Delegate to the per-context summarizer
5754 summarizer .summarizeEvent (timestamp , flagKey , flagVersion , variation , value , defaultValue , context );
@@ -77,7 +74,7 @@ public List<EventSummarizer.EventSummary> getSummariesAndReset() {
7774
7875 /**
7976 * Restores the summarizer state from a previous snapshot. This is used when a flush
80- * operation fails and we need to keep the summary data for the next attempt.
77+ * operation fails, and we need to keep the summary data for the next attempt.
8178 *
8279 * @param previousSummaries the list of summaries to restore
8380 */
@@ -96,7 +93,7 @@ public void restoreTo(List<EventSummarizer.EventSummary> previousSummaries) {
9693 /**
9794 * Returns true if there is no summary data for any context.
9895 *
99- * @return true if all contexts have empty state
96+ * @return true if all contexts have are empty
10097 */
10198 @ Override
10299 public boolean isEmpty () {
0 commit comments