Skip to content

Commit aba94fc

Browse files
committed
🎨 Created interface to represent RestClientFactory
This is better than using the generic TriFunction interface because it hides some implementation details and is less verbose.
1 parent 1f3c669 commit aba94fc

21 files changed

+74
-82
lines changed

‎rest-services/client/src/main/java/com/_4point/aem/docservices/rest_services/client/af/AdaptiveFormsService.java‎

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -15,12 +15,11 @@
1515
import com._4point.aem.docservices.rest_services.client.RestClient.MultipartPayload;
1616
import com._4point.aem.docservices.rest_services.client.RestClient.Response;
1717
import com._4point.aem.docservices.rest_services.client.RestClient.RestClientException;
18-
import com._4point.aem.docservices.rest_services.client.helpers.AemConfig;
1918
import com._4point.aem.docservices.rest_services.client.helpers.AemServerType;
2019
import com._4point.aem.docservices.rest_services.client.helpers.Builder;
20+
import com._4point.aem.docservices.rest_services.client.helpers.Builder.RestClientFactory;
2121
import com._4point.aem.docservices.rest_services.client.helpers.BuilderImpl;
2222
import com._4point.aem.docservices.rest_services.client.helpers.RestServicesServiceAdapter;
23-
import com._4point.aem.docservices.rest_services.client.helpers.BuilderImpl.TriFunction;
2423
import com._4point.aem.fluentforms.api.Document;
2524
import com._4point.aem.fluentforms.api.PathOrUrl;
2625
import com._4point.aem.fluentforms.impl.SimpleDocumentFactoryImpl;
@@ -186,7 +185,7 @@ public Document renderAdaptiveForm(Path template, Document data) throws Adaptive
186185
*
187186
* @return
188187
*/
189-
public static AdaptiveFormsServiceBuilder builder(TriFunction<AemConfig, String, Supplier<String>, RestClient> clientFactory) {
188+
public static AdaptiveFormsServiceBuilder builder(RestClientFactory clientFactory) {
190189
return new AdaptiveFormsServiceBuilder(clientFactory);
191190
}
192191

@@ -195,7 +194,7 @@ public static class AdaptiveFormsServiceBuilder implements Builder {
195194
private Function<InputStream, InputStream> renderResultFilter;
196195

197196
// Prevent it from being instantiated outside of this class
198-
private AdaptiveFormsServiceBuilder(TriFunction<AemConfig, String, Supplier<String>, RestClient> clientFactory) {
197+
private AdaptiveFormsServiceBuilder(RestClientFactory clientFactory) {
199198
this.builder = new BuilderImpl(clientFactory);
200199
}
201200

‎rest-services/client/src/main/java/com/_4point/aem/docservices/rest_services/client/assembler/RestServicesDocAssemblerServiceAdapter.java‎

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,10 @@
2525
import com._4point.aem.docservices.rest_services.client.RestClient.MultipartPayload;
2626
import com._4point.aem.docservices.rest_services.client.RestClient.Response;
2727
import com._4point.aem.docservices.rest_services.client.RestClient.RestClientException;
28-
import com._4point.aem.docservices.rest_services.client.helpers.AemConfig;
2928
import com._4point.aem.docservices.rest_services.client.helpers.AemServerType;
3029
import com._4point.aem.docservices.rest_services.client.helpers.Builder;
30+
import com._4point.aem.docservices.rest_services.client.helpers.Builder.RestClientFactory;
3131
import com._4point.aem.docservices.rest_services.client.helpers.BuilderImpl;
32-
import com._4point.aem.docservices.rest_services.client.helpers.BuilderImpl.TriFunction;
3332
import com._4point.aem.docservices.rest_services.client.helpers.RestServicesServiceAdapter;
3433
import com._4point.aem.docservices.rest_services.client.helpers.XmlDocument;
3534
import com._4point.aem.docservices.rest_services.client.helpers.XmlDocument.XmlDocumentException;
@@ -233,14 +232,14 @@ private static int getNumRequestedBlocks(org.w3c.dom.Document doc) {
233232
*
234233
* return null; }
235234
*/
236-
public static AssemblerServiceBuilder builder(TriFunction<AemConfig, String, Supplier<String>, RestClient> clientFactory) {
235+
public static AssemblerServiceBuilder builder(RestClientFactory clientFactory) {
237236
return new AssemblerServiceBuilder(clientFactory);
238237
}
239238

240239
public static class AssemblerServiceBuilder implements Builder {
241240
private final BuilderImpl builder;
242241

243-
public AssemblerServiceBuilder(TriFunction<AemConfig, String, Supplier<String>, RestClient> clientFactory) {
242+
public AssemblerServiceBuilder(RestClientFactory clientFactory) {
244243
this.builder = new BuilderImpl(clientFactory);
245244
}
246245

‎rest-services/client/src/main/java/com/_4point/aem/docservices/rest_services/client/convertPdf/RestServicesConvertPdfServiceAdapter.java‎

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,10 @@
1313
import com._4point.aem.docservices.rest_services.client.RestClient.MultipartPayload;
1414
import com._4point.aem.docservices.rest_services.client.RestClient.Response;
1515
import com._4point.aem.docservices.rest_services.client.RestClient.RestClientException;
16-
import com._4point.aem.docservices.rest_services.client.helpers.AemConfig;
1716
import com._4point.aem.docservices.rest_services.client.helpers.AemServerType;
1817
import com._4point.aem.docservices.rest_services.client.helpers.Builder;
18+
import com._4point.aem.docservices.rest_services.client.helpers.Builder.RestClientFactory;
1919
import com._4point.aem.docservices.rest_services.client.helpers.BuilderImpl;
20-
import com._4point.aem.docservices.rest_services.client.helpers.BuilderImpl.TriFunction;
2120
import com._4point.aem.docservices.rest_services.client.helpers.RestServicesServiceAdapter;
2221
import com._4point.aem.fluentforms.api.Document;
2322
import com._4point.aem.fluentforms.api.convertPdf.ConvertPdfService.ConvertPdfServiceException;
@@ -271,14 +270,14 @@ public Document toPS(Document inPdfDoc, ToPSOptionsSpec toPSOptionsSpec) throws
271270
*
272271
* @return build object
273272
*/
274-
public static ConvertPdfServiceBuilder builder(TriFunction<AemConfig, String, Supplier<String>, RestClient> clientFactory) {
273+
public static ConvertPdfServiceBuilder builder(RestClientFactory clientFactory) {
275274
return new ConvertPdfServiceBuilder(clientFactory);
276275
}
277276

278277
public static class ConvertPdfServiceBuilder implements Builder {
279278
private BuilderImpl builder;
280279

281-
private ConvertPdfServiceBuilder(TriFunction<AemConfig, String, Supplier<String>, RestClient> clientFactory) {
280+
private ConvertPdfServiceBuilder(RestClientFactory clientFactory) {
282281
this.builder = new BuilderImpl(clientFactory);
283282
}
284283

‎rest-services/client/src/main/java/com/_4point/aem/docservices/rest_services/client/docassurance/RestServicesDocAssuranceServiceAdapter.java‎

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,10 @@
99
import com._4point.aem.docservices.rest_services.client.RestClient.ContentType;
1010
import com._4point.aem.docservices.rest_services.client.RestClient.MultipartPayload;
1111
import com._4point.aem.docservices.rest_services.client.RestClient.RestClientException;
12-
import com._4point.aem.docservices.rest_services.client.helpers.AemConfig;
1312
import com._4point.aem.docservices.rest_services.client.helpers.AemServerType;
1413
import com._4point.aem.docservices.rest_services.client.helpers.Builder;
14+
import com._4point.aem.docservices.rest_services.client.helpers.Builder.RestClientFactory;
1515
import com._4point.aem.docservices.rest_services.client.helpers.BuilderImpl;
16-
import com._4point.aem.docservices.rest_services.client.helpers.BuilderImpl.TriFunction;
1716
import com._4point.aem.docservices.rest_services.client.helpers.RestServicesServiceAdapter;
1817
import com._4point.aem.fluentforms.api.Document;
1918
import com._4point.aem.fluentforms.api.docassurance.DocAssuranceService.DocAssuranceServiceException;
@@ -225,14 +224,14 @@ public Document applyDocumentTimeStamp(Document inDoc, VerificationTime verifica
225224
*
226225
* @return build object
227226
*/
228-
public static DocAssuranceServiceBuilder builder(TriFunction<AemConfig, String, Supplier<String>, RestClient> clientFactory) {
227+
public static DocAssuranceServiceBuilder builder(RestClientFactory clientFactory) {
229228
return new DocAssuranceServiceBuilder(clientFactory);
230229
}
231230

232231
public static class DocAssuranceServiceBuilder implements Builder {
233232
private final BuilderImpl builder;
234233

235-
private DocAssuranceServiceBuilder(TriFunction<AemConfig, String, Supplier<String>, RestClient> clientFactory) {
234+
private DocAssuranceServiceBuilder(RestClientFactory clientFactory) {
236235
builder = new BuilderImpl(clientFactory);
237236
}
238237

‎rest-services/client/src/main/java/com/_4point/aem/docservices/rest_services/client/forms/RestServicesFormsServiceAdapter.java‎

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,10 @@
88
import com._4point.aem.docservices.rest_services.client.RestClient.ContentType;
99
import com._4point.aem.docservices.rest_services.client.RestClient.MultipartPayload;
1010
import com._4point.aem.docservices.rest_services.client.RestClient.RestClientException;
11-
import com._4point.aem.docservices.rest_services.client.helpers.AemConfig;
1211
import com._4point.aem.docservices.rest_services.client.helpers.AemServerType;
1312
import com._4point.aem.docservices.rest_services.client.helpers.Builder;
13+
import com._4point.aem.docservices.rest_services.client.helpers.Builder.RestClientFactory;
1414
import com._4point.aem.docservices.rest_services.client.helpers.BuilderImpl;
15-
import com._4point.aem.docservices.rest_services.client.helpers.BuilderImpl.TriFunction;
1615
import com._4point.aem.docservices.rest_services.client.helpers.RestServicesServiceAdapter;
1716
import com._4point.aem.fluentforms.api.Document;
1817
import com._4point.aem.fluentforms.api.forms.FormsService.FormsServiceException;
@@ -148,14 +147,14 @@ public ValidationResult validate(String template, Document data, ValidationOptio
148147
*
149148
* @return build object
150149
*/
151-
public static FormsServiceBuilder builder(TriFunction<AemConfig, String, Supplier<String>, RestClient> clientFactory) {
150+
public static FormsServiceBuilder builder(RestClientFactory clientFactory) {
152151
return new FormsServiceBuilder(clientFactory);
153152
}
154153

155154
public static class FormsServiceBuilder implements Builder {
156155
private final BuilderImpl builder;
157156

158-
private FormsServiceBuilder(TriFunction<AemConfig, String, Supplier<String>, RestClient> clientFactory) {
157+
private FormsServiceBuilder(RestClientFactory clientFactory) {
159158
this.builder = new BuilderImpl(clientFactory);
160159
}
161160

‎rest-services/client/src/main/java/com/_4point/aem/docservices/rest_services/client/generatePDF/RestServicesGeneratePDFServiceAdapter.java‎

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,10 @@
1919
import com._4point.aem.docservices.rest_services.client.RestClient.MultipartPayload;
2020
import com._4point.aem.docservices.rest_services.client.RestClient.Response;
2121
import com._4point.aem.docservices.rest_services.client.RestClient.RestClientException;
22-
import com._4point.aem.docservices.rest_services.client.helpers.AemConfig;
2322
import com._4point.aem.docservices.rest_services.client.helpers.AemServerType;
2423
import com._4point.aem.docservices.rest_services.client.helpers.Builder;
24+
import com._4point.aem.docservices.rest_services.client.helpers.Builder.RestClientFactory;
2525
import com._4point.aem.docservices.rest_services.client.helpers.BuilderImpl;
26-
import com._4point.aem.docservices.rest_services.client.helpers.BuilderImpl.TriFunction;
2726
import com._4point.aem.docservices.rest_services.client.helpers.RestServicesServiceAdapter;
2827
import com._4point.aem.fluentforms.api.Document;
2928
import com._4point.aem.fluentforms.api.generatePDF.CreatePDFResult;
@@ -114,14 +113,14 @@ private static void getNodeValueForAttribute(org.w3c.dom.Document doc, String pa
114113
}
115114
}
116115

117-
public static GeneratePDFServiceBuilder builder(TriFunction<AemConfig, String, Supplier<String>, RestClient> clientFactory) {
116+
public static GeneratePDFServiceBuilder builder(RestClientFactory clientFactory) {
118117
return new GeneratePDFServiceBuilder(clientFactory);
119118
}
120119

121120
public static class GeneratePDFServiceBuilder implements Builder {
122121
private final BuilderImpl builder;
123122

124-
public GeneratePDFServiceBuilder(TriFunction<AemConfig, String, Supplier<String>, RestClient> clientFactory) {
123+
public GeneratePDFServiceBuilder(RestClientFactory clientFactory) {
125124
this.builder = new BuilderImpl(clientFactory);
126125
}
127126

‎rest-services/client/src/main/java/com/_4point/aem/docservices/rest_services/client/helpers/Builder.java‎

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package com._4point.aem.docservices.rest_services.client.helpers;
22

3-
import java.util.function.BiFunction;
3+
import java.util.Objects;
4+
import java.util.function.Function;
45
import java.util.function.Supplier;
56

67
import com._4point.aem.docservices.rest_services.client.RestClient;
@@ -31,4 +32,18 @@ public interface Builder {
3132
public Builder aemServerType(AemServerType serverType);
3233

3334
public AemServerType getAemServerType();
35+
36+
public interface RestClientFactory extends TriFunction<AemConfig, String, Supplier<String>, RestClient> {}
37+
38+
@FunctionalInterface
39+
public interface TriFunction<T, U, V, R> {
40+
41+
R apply(T t, U u, V v);
42+
43+
default <K> TriFunction<T, U, V, K> andThen(Function<? super R, ? extends K> after) {
44+
Objects.requireNonNull(after);
45+
return (T t, U u, V v) -> after.apply(apply(t, u, v));
46+
}
47+
}
48+
3449
}

‎rest-services/client/src/main/java/com/_4point/aem/docservices/rest_services/client/helpers/BuilderImpl.java‎

Lines changed: 3 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package com._4point.aem.docservices.rest_services.client.helpers;
22

33
import java.util.Objects;
4-
import java.util.function.Function;
54
import java.util.function.Supplier;
65

76
import com._4point.aem.docservices.rest_services.client.RestClient;
@@ -18,7 +17,7 @@
1817
public class BuilderImpl implements Builder {
1918
private static final String SERVICES_URL_PREFIX = "/services";
2019

21-
private final TriFunction<AemConfig, String, Supplier<String>, RestClient> clientFactory;
20+
private final RestClientFactory clientFactory;
2221
private final AemConfig.SimpleAemConfigBuilder aemConfigBuilder = new AemConfig.SimpleAemConfigBuilder();
2322
private Supplier<String> correlationIdFn = null;
2423
private AemServerType aemServerType = AemServerType.StandardType.OSGI; // Defaults to OSGi but can be overridden.
@@ -28,7 +27,7 @@ public interface Method {
2827
}
2928

3029
// TODO: Convert to TriFunction (maybe if correlation ID function is present?)
31-
public BuilderImpl(TriFunction<AemConfig, String, Supplier<String>, RestClient> clientFactory) {
30+
public BuilderImpl(RestClientFactory clientFactory) {
3231
this.clientFactory = clientFactory;
3332
}
3433

@@ -93,15 +92,4 @@ public RestClient createClient(String serviceName, String methodName) {
9392
public RestClient createClient(String endpoint) {
9493
return createClientImplementation(this.aemServerType.pathPrefix() + endpoint);
9594
}
96-
97-
@FunctionalInterface
98-
public interface TriFunction<T, U, V, R> {
99-
100-
R apply(T t, U u, V v);
101-
102-
default <K> TriFunction<T, U, V, K> andThen(Function<? super R, ? extends K> after) {
103-
Objects.requireNonNull(after);
104-
return (T t, U u, V v) -> after.apply(apply(t, u, v));
105-
}
106-
}
107-
}
95+
}

‎rest-services/client/src/main/java/com/_4point/aem/docservices/rest_services/client/html5/Html5FormsService.java‎

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,11 +12,10 @@
1212
import com._4point.aem.docservices.rest_services.client.RestClient.ContentType;
1313
import com._4point.aem.docservices.rest_services.client.RestClient.MultipartPayload;
1414
import com._4point.aem.docservices.rest_services.client.RestClient.RestClientException;
15-
import com._4point.aem.docservices.rest_services.client.helpers.AemConfig;
1615
import com._4point.aem.docservices.rest_services.client.helpers.AemServerType;
1716
import com._4point.aem.docservices.rest_services.client.helpers.Builder;
17+
import com._4point.aem.docservices.rest_services.client.helpers.Builder.RestClientFactory;
1818
import com._4point.aem.docservices.rest_services.client.helpers.BuilderImpl;
19-
import com._4point.aem.docservices.rest_services.client.helpers.BuilderImpl.TriFunction;
2019
import com._4point.aem.docservices.rest_services.client.helpers.RestServicesServiceAdapter;
2120
import com._4point.aem.fluentforms.api.Document;
2221
import com._4point.aem.fluentforms.api.PathOrUrl;
@@ -114,7 +113,7 @@ public Document renderHtml5Form(URL template, Document data) throws Html5FormsSe
114113
*
115114
* @return builder object
116115
*/
117-
public static Html5FormsServiceBuilder builder(TriFunction<AemConfig, String, Supplier<String>, RestClient> clientFactory) {
116+
public static Html5FormsServiceBuilder builder(RestClientFactory clientFactory) {
118117
return new Html5FormsServiceBuilder(clientFactory);
119118
}
120119

@@ -123,7 +122,7 @@ public static class Html5FormsServiceBuilder implements Builder {
123122
private Function<InputStream, InputStream> renderResultFilter;
124123

125124
// Prevent it from being instantiated outside of this class
126-
private Html5FormsServiceBuilder(TriFunction<AemConfig, String, Supplier<String>, RestClient> clientFactory) {
125+
private Html5FormsServiceBuilder(RestClientFactory clientFactory) {
127126
this.builder = new BuilderImpl(clientFactory);
128127
}
129128

‎rest-services/client/src/main/java/com/_4point/aem/docservices/rest_services/client/output/RestServicesOutputServiceAdapter.java‎

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,10 @@
1111
import com._4point.aem.docservices.rest_services.client.RestClient.ContentType;
1212
import com._4point.aem.docservices.rest_services.client.RestClient.MultipartPayload;
1313
import com._4point.aem.docservices.rest_services.client.RestClient.RestClientException;
14-
import com._4point.aem.docservices.rest_services.client.helpers.AemConfig;
1514
import com._4point.aem.docservices.rest_services.client.helpers.AemServerType;
1615
import com._4point.aem.docservices.rest_services.client.helpers.Builder;
16+
import com._4point.aem.docservices.rest_services.client.helpers.Builder.RestClientFactory;
1717
import com._4point.aem.docservices.rest_services.client.helpers.BuilderImpl;
18-
import com._4point.aem.docservices.rest_services.client.helpers.BuilderImpl.TriFunction;
1918
import com._4point.aem.docservices.rest_services.client.helpers.RestServicesServiceAdapter;
2019
import com._4point.aem.fluentforms.api.Document;
2120
import com._4point.aem.fluentforms.api.output.BatchOptions;
@@ -173,14 +172,14 @@ private ContentType getAcceptType(RenderType renderType) {
173172
*
174173
* @return build object
175174
*/
176-
public static OutputServiceBuilder builder(TriFunction<AemConfig, String, Supplier<String>, RestClient> clientFactory) {
175+
public static OutputServiceBuilder builder(RestClientFactory clientFactory) {
177176
return new OutputServiceBuilder(clientFactory);
178177
}
179178

180179
public static class OutputServiceBuilder implements Builder {
181180
private final BuilderImpl builder;
182181

183-
private OutputServiceBuilder(TriFunction<AemConfig, String, Supplier<String>, RestClient> clientFactory) {
182+
private OutputServiceBuilder(RestClientFactory clientFactory) {
184183
this.builder = new BuilderImpl(clientFactory);
185184
}
186185

0 commit comments

Comments
 (0)