Expose build method in SseEventBuilder
Issue: SPR-13591
This commit is contained in:
@@ -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;
|
private final Object data;
|
||||||
|
|
||||||
|
|||||||
@@ -117,7 +117,7 @@ public class SseEmitter extends ResponseBodyEmitter {
|
|||||||
* @throws IOException raised when an I/O error occurs
|
* @throws IOException raised when an I/O error occurs
|
||||||
*/
|
*/
|
||||||
public void send(SseEventBuilder builder) throws IOException {
|
public void send(SseEventBuilder builder) throws IOException {
|
||||||
Set<DataWithMediaType> dataToSend = ((SseEventBuilderImpl) builder).build();
|
Set<DataWithMediaType> dataToSend = builder.build();
|
||||||
synchronized (this) {
|
synchronized (this) {
|
||||||
for (DataWithMediaType entry : dataToSend) {
|
for (DataWithMediaType entry : dataToSend) {
|
||||||
super.send(entry.getData(), entry.getMediaType());
|
super.send(entry.getData(), entry.getMediaType());
|
||||||
@@ -165,6 +165,13 @@ public class SseEmitter extends ResponseBodyEmitter {
|
|||||||
* Add an SSE "data" line.
|
* Add an SSE "data" line.
|
||||||
*/
|
*/
|
||||||
SseEventBuilder data(Object object, MediaType mediaType);
|
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;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
Set<DataWithMediaType> build() {
|
@Override
|
||||||
|
public Set<DataWithMediaType> build() {
|
||||||
if ((this.sb == null || this.sb.length() == 0) && this.dataToSend.isEmpty()) {
|
if ((this.sb == null || this.sb.length() == 0) && this.dataToSend.isEmpty()) {
|
||||||
return Collections.<DataWithMediaType>emptySet();
|
return Collections.<DataWithMediaType>emptySet();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user