提交 1c382be0 编写于 作者: R Rossen Stoyanchev

Expose build method in SseEventBuilder

Issue: SPR-13591
上级 050e79e4
......@@ -241,9 +241,10 @@ public class ResponseBodyEmitter {
/**
* Simple struct for a data entry.
* A simple holder of data to be written along with a MediaType hint for
* selecting a message converter to write with.
*/
static class DataWithMediaType {
public static class DataWithMediaType {
private final Object data;
......
......@@ -117,7 +117,7 @@ public class SseEmitter extends ResponseBodyEmitter {
* @throws IOException raised when an I/O error occurs
*/
public void send(SseEventBuilder builder) throws IOException {
Set<DataWithMediaType> dataToSend = ((SseEventBuilderImpl) builder).build();
Set<DataWithMediaType> dataToSend = builder.build();
synchronized (this) {
for (DataWithMediaType entry : dataToSend) {
super.send(entry.getData(), entry.getMediaType());
......@@ -165,6 +165,13 @@ public class SseEmitter extends ResponseBodyEmitter {
* Add an SSE "data" line.
*/
SseEventBuilder data(Object object, MediaType mediaType);
/**
* Return one or more Object-MediaType pairs to write via
* {@link #send(Object, MediaType)}.
*/
Set<DataWithMediaType> build();
}
......@@ -223,7 +230,8 @@ public class SseEmitter extends ResponseBodyEmitter {
return this;
}
Set<DataWithMediaType> build() {
@Override
public Set<DataWithMediaType> build() {
if ((this.sb == null || this.sb.length() == 0) && this.dataToSend.isEmpty()) {
return Collections.<DataWithMediaType>emptySet();
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册