3434 * @since 4.2
3535 */
3636public final class StandardBatchUtils {
37-
37+
3838 private StandardBatchUtils () {
39-
39+
4040 }
41-
41+
4242 /**
4343 * Iterates over batch message structure returning {@link Iterable} of individual messages.
44- *
44+ *
4545 * @param batchMessage instance of batch {@link Message}
4646 * @return instance of {@link Iterable} representing individual Messages in a batch {@link Message} as {@link Entry}.
4747 */
4848 public static Iterable <Entry <Object , Map <String , Object >>> iterate (Message <List <Object >> batchMessage ) {
49- return new Iterable <Map .Entry <Object ,Map <String , Object >>>() {
49+ return () -> new Iterator <>() {
50+ int index = 0 ;
51+
5052 @ Override
51- public Iterator <Entry <Object , Map <String , Object >>> iterator () {
52- return new Iterator <Entry <Object , Map <String , Object >>>() {
53- int index = 0 ;
54- @ Override
55- public Entry <Object , Map <String , Object >> next () {
56- return getMessageByIndex (batchMessage , index ++);
57- }
58-
59- @ Override
60- public boolean hasNext () {
61- return index < batchMessage .getPayload ().size ();
62- }
63- };
53+ public Entry <Object , Map <String , Object >> next () {
54+ return getMessageByIndex (batchMessage , index ++);
55+ }
56+
57+ @ Override
58+ public boolean hasNext () {
59+ return index < batchMessage .getPayload ().size ();
6460 }
6561 };
6662 }
67-
63+
6864 /**
69- * Extracts individual {@link Message} by index from batch {@link Message}
65+ * Extracts individual {@link Message} by index from batch {@link Message}.
7066 * @param batchMessage instance of batch {@link Message}
7167 * @param index index of individual {@link Message} in a batch
7268 * @return individual {@link Message} in a batch {@link Message}
7369 */
7470 public static Entry <Object , Map <String , Object >> getMessageByIndex (Message <List <Object >> batchMessage , int index ) {
75- Assert .isTrue (index < batchMessage .getPayload ().size (), "Index " + index + " is out of bounds as there are only "
71+ Assert .isTrue (index < batchMessage .getPayload ().size (), "Index " + index + " is out of bounds as there are only "
7672 + batchMessage .getPayload ().size () + " messages in a batch." );
77- return new Entry <Object , Map < String , Object > >() {
78-
73+ return new Entry <>() {
74+
7975 @ Override
8076 public Map <String , Object > setValue (Map <String , Object > value ) {
8177 throw new UnsupportedOperationException ();
8278 }
83-
79+
8480 @ SuppressWarnings ("unchecked" )
8581 @ Override
8682 public Map <String , Object > getValue () {
8783 return ((List <Map <String , Object >>) batchMessage .getHeaders ().get (BinderHeaders .BATCH_HEADERS )).get (index );
8884 }
89-
85+
9086 @ Override
9187 public Object getKey () {
9288 return batchMessage .getPayload ().get (index );
@@ -95,24 +91,24 @@ public Object getKey() {
9591 }
9692
9793 public static class BatchMessageBuilder {
98-
94+
9995 private final List <Object > payloads = new ArrayList <>();
100-
96+
10197 private final List <Map <String , Object >> batchHeaders = new ArrayList <>();
102-
98+
10399 private final Map <String , Object > headers = new HashMap <>();
104-
100+
105101 public BatchMessageBuilder addMessage (Object payload , Map <String , Object > batchHeaders ) {
106102 this .payloads .add (payload );
107103 this .batchHeaders .add (batchHeaders );
108104 return this ;
109105 }
110-
106+
111107 public BatchMessageBuilder addRootHeader (String key , Object value ) {
112108 this .headers .put (key , value );
113109 return this ;
114110 }
115-
111+
116112 public Message <List <Object >> build () {
117113 this .headers .put (BinderHeaders .BATCH_HEADERS , this .batchHeaders );
118114 return MessageBuilder .createMessage (payloads , new MessageHeaders (headers ));
0 commit comments