77import java .util .List ;
88import java .util .Optional ;
99import java .util .function .Function ;
10+ import java .util .stream .Stream ;
1011
1112import com ._4point .aem .fluentforms .api .Document ;
1213
@@ -86,6 +87,26 @@ default Builder add(String fieldName, Document document, ContentType contentType
8687 throw new UncheckedIOException (e );
8788 }
8889 }
90+ default Builder addStrings (String fieldName , List <String > fieldData ) {
91+ for (String obj : fieldData ) {
92+ add (fieldName , obj );
93+ }
94+ return this ;
95+ }
96+ default Builder addDocs (String fieldName , List <Document > fieldData ) {
97+ for (Document obj : fieldData ) {
98+ add (fieldName , obj );
99+ }
100+ return this ;
101+ }
102+ default Builder addStrings (String fieldName , Stream <String > fieldData ) {
103+ fieldData .forEach (fieldValue ->add (fieldName , fieldValue ));
104+ return this ;
105+ }
106+ default Builder addDocs (String fieldName , Stream <Document > fieldData ) {
107+ fieldData .forEach (fieldValue ->add (fieldName , fieldValue ));
108+ return this ;
109+ }
89110 default Builder addIfNotNull (String fieldName , String fieldData ) {
90111 return fieldData != null ? add (fieldName , fieldData ) : this ;
91112 }
@@ -101,6 +122,9 @@ default Builder addIfNotNull(String fieldName, Document document) {
101122 default Builder addIfNotNull (String fieldName , Document document , ContentType contentType ) {
102123 return document != null ? add (fieldName , document , contentType ) : this ;
103124 }
125+ default Builder addDocsIfNotNull (String fieldName , List <Document > fieldData ) {
126+ return fieldData != null ? addDocs (fieldName , fieldData ) : this ;
127+ }
104128 default <T > Builder transformAndAdd (String fieldName , T fieldData , Function <T , String > fn ) {
105129 return fieldData != null ? addIfNotNull (fieldName , fn .apply (fieldData )) : this ;
106130 }
@@ -116,6 +140,9 @@ default <T> Builder addStringVersion(String fieldName, T fieldData) {
116140 default <T , O > Builder transformAndAddStringVersion (String fieldName , T fieldData , Function <T , O > fn ) {
117141 return fieldData != null ? addStringVersion (fieldName , fn .apply (fieldData )) : this ;
118142 }
143+ default <T > Builder transformAndAddDocs (String fieldName , T fieldData , Function <T , List <Document >> fn ) {
144+ return fieldData != null ? addDocsIfNotNull (fieldName , fn .apply (fieldData )) : this ;
145+ }
119146 default Builder addStringVersion (String fieldName , List <?> fieldData ) {
120147 for (Object obj : fieldData ) {
121148 addStringVersion (fieldName , obj );
0 commit comments