@@ -584,11 +584,11 @@ interface BodyBuilder extends HeadersBuilder<BodyBuilder> {
584
584
}
585
585
586
586
/**
587
- * Defines a builder for async response bodies .
588
- * @since 6.2
589
- * @param <B> the builder subclass
587
+ * Defines a builder for a body that sends server-sent events .
588
+ *
589
+ * @since 5.3.2
590
590
*/
591
- interface AsyncBuilder < B extends AsyncBuilder < B >> {
591
+ interface SseBuilder {
592
592
593
593
/**
594
594
* Completes the stream with the given error.
@@ -611,32 +611,22 @@ interface AsyncBuilder<B extends AsyncBuilder<B>> {
611
611
* @param onTimeout the callback to invoke on timeout
612
612
* @return this builder
613
613
*/
614
- B onTimeout (Runnable onTimeout );
614
+ SseBuilder onTimeout (Runnable onTimeout );
615
615
616
616
/**
617
617
* Register a callback to be invoked when an error occurs during
618
618
* processing.
619
619
* @param onError the callback to invoke on error
620
620
* @return this builder
621
621
*/
622
- B onError (Consumer <Throwable > onError );
622
+ SseBuilder onError (Consumer <Throwable > onError );
623
623
624
624
/**
625
625
* Register a callback to be invoked when the request completes.
626
626
* @param onCompletion the callback to invoked on completion
627
627
* @return this builder
628
628
*/
629
- B onComplete (Runnable onCompletion );
630
-
631
- }
632
-
633
-
634
- /**
635
- * Defines a builder for a body that sends server-sent events.
636
- *
637
- * @since 5.3.2
638
- */
639
- interface SseBuilder extends AsyncBuilder <SseBuilder > {
629
+ SseBuilder onComplete (Runnable onCompletion );
640
630
641
631
/**
642
632
* Sends the given object as a server-sent event.
@@ -706,7 +696,45 @@ interface SseBuilder extends AsyncBuilder<SseBuilder> {
706
696
*
707
697
* @since 6.2
708
698
*/
709
- interface StreamBuilder extends AsyncBuilder <StreamBuilder > {
699
+ interface StreamBuilder {
700
+
701
+ /**
702
+ * Completes the stream with the given error.
703
+ *
704
+ * <p>The throwable is dispatched back into Spring MVC, and passed to
705
+ * its exception handling mechanism. Since the response has
706
+ * been committed by this point, the response status can not change.
707
+ * @param t the throwable to dispatch
708
+ */
709
+ void error (Throwable t );
710
+
711
+ /**
712
+ * Completes the stream.
713
+ */
714
+ void complete ();
715
+
716
+ /**
717
+ * Register a callback to be invoked when a request times
718
+ * out.
719
+ * @param onTimeout the callback to invoke on timeout
720
+ * @return this builder
721
+ */
722
+ StreamBuilder onTimeout (Runnable onTimeout );
723
+
724
+ /**
725
+ * Register a callback to be invoked when an error occurs during
726
+ * processing.
727
+ * @param onError the callback to invoke on error
728
+ * @return this builder
729
+ */
730
+ StreamBuilder onError (Consumer <Throwable > onError );
731
+
732
+ /**
733
+ * Register a callback to be invoked when the request completes.
734
+ * @param onCompletion the callback to invoked on completion
735
+ * @return this builder
736
+ */
737
+ StreamBuilder onComplete (Runnable onCompletion );
710
738
711
739
/**
712
740
* Write the given object to the response stream, without flushing.
0 commit comments