Skip to content

Commit c596ffa

Browse files
google-genai-botcopybara-github
authored andcommitted
feat: update return type for artifactDelta getter and setter to Map from ConcurrentMap
PiperOrigin-RevId: 880807999
1 parent a86ede0 commit c596ffa

2 files changed

Lines changed: 31 additions & 3 deletions

File tree

core/src/main/java/com/google/adk/events/EventActions.java

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -110,12 +110,16 @@ public void removeStateByKey(String key) {
110110
}
111111

112112
@JsonProperty("artifactDelta")
113-
public ConcurrentMap<String, Integer> artifactDelta() {
113+
public Map<String, Integer> artifactDelta() {
114114
return artifactDelta;
115115
}
116116

117-
public void setArtifactDelta(ConcurrentMap<String, Integer> artifactDelta) {
118-
this.artifactDelta = artifactDelta;
117+
public void setArtifactDelta(Map<String, Integer> artifactDelta) {
118+
if (artifactDelta instanceof ConcurrentMap) {
119+
this.artifactDelta = (ConcurrentMap<String, Integer>) artifactDelta;
120+
} else {
121+
this.artifactDelta = new ConcurrentHashMap<>(artifactDelta);
122+
}
119123
}
120124

121125
@JsonProperty("deletedArtifactIds")

core/src/test/java/com/google/adk/events/EventActionsTest.java

Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@
2626
import com.google.genai.types.Part;
2727
import java.util.Map;
2828
import java.util.concurrent.ConcurrentHashMap;
29+
import java.util.concurrent.ConcurrentMap;
2930
import org.junit.Test;
3031
import org.junit.runner.RunWith;
3132
import org.junit.runners.JUnit4;
@@ -109,6 +110,29 @@ public void merge_mergesAllFields() {
109110
assertThat(merged.compaction()).hasValue(COMPACTION);
110111
}
111112

113+
@Test
114+
public void setArtifactDelta_reusesConcurrentMap() {
115+
EventActions eventActions = new EventActions();
116+
ConcurrentMap<String, Integer> artifactDelta = new ConcurrentHashMap<>();
117+
artifactDelta.put("artifact1", 1);
118+
119+
eventActions.setArtifactDelta(artifactDelta);
120+
121+
assertThat(eventActions.artifactDelta()).isSameInstanceAs(artifactDelta);
122+
}
123+
124+
@Test
125+
public void setArtifactDelta_copiesRegularMap() {
126+
EventActions eventActions = new EventActions();
127+
ImmutableMap<String, Integer> artifactDelta = ImmutableMap.of("artifact1", 1);
128+
129+
eventActions.setArtifactDelta(artifactDelta);
130+
131+
assertThat(eventActions.artifactDelta()).isNotSameInstanceAs(artifactDelta);
132+
assertThat(eventActions.artifactDelta()).containsExactly("artifact1", 1);
133+
assertThat(eventActions.artifactDelta()).isInstanceOf(ConcurrentMap.class);
134+
}
135+
112136
@Test
113137
public void removeStateByKey_marksKeyAsRemoved() {
114138
EventActions eventActions = new EventActions();

0 commit comments

Comments
 (0)