Skip to content

Commit 1c382be

Browse files
committed
Expose build method in SseEventBuilder
Issue: SPR-13591
1 parent 050e79e commit 1c382be

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/ResponseBodyEmitter.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -241,9 +241,10 @@ interface Handler {
241241

242242

243243
/**
244-
* Simple struct for a data entry.
244+
* A simple holder of data to be written along with a MediaType hint for
245+
* selecting a message converter to write with.
245246
*/
246-
static class DataWithMediaType {
247+
public static class DataWithMediaType {
247248

248249
private final Object data;
249250

spring-webmvc/src/main/java/org/springframework/web/servlet/mvc/method/annotation/SseEmitter.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ public void send(Object object, MediaType mediaType) throws IOException {
117117
* @throws IOException raised when an I/O error occurs
118118
*/
119119
public void send(SseEventBuilder builder) throws IOException {
120-
Set<DataWithMediaType> dataToSend = ((SseEventBuilderImpl) builder).build();
120+
Set<DataWithMediaType> dataToSend = builder.build();
121121
synchronized (this) {
122122
for (DataWithMediaType entry : dataToSend) {
123123
super.send(entry.getData(), entry.getMediaType());
@@ -165,6 +165,13 @@ public interface SseEventBuilder {
165165
* Add an SSE "data" line.
166166
*/
167167
SseEventBuilder data(Object object, MediaType mediaType);
168+
169+
/**
170+
* Return one or more Object-MediaType pairs to write via
171+
* {@link #send(Object, MediaType)}.
172+
*/
173+
Set<DataWithMediaType> build();
174+
168175
}
169176

170177

@@ -223,7 +230,8 @@ SseEventBuilderImpl append(String text) {
223230
return this;
224231
}
225232

226-
Set<DataWithMediaType> build() {
233+
@Override
234+
public Set<DataWithMediaType> build() {
227235
if ((this.sb == null || this.sb.length() == 0) && this.dataToSend.isEmpty()) {
228236
return Collections.<DataWithMediaType>emptySet();
229237
}

0 commit comments

Comments
 (0)