Skip to content

Commit 42d7d22

Browse files
newtorka-dJonas-Isr
authored
Use functional interfaces instead of class (#357)
Co-authored-by: Alexander Dümont <[email protected]> Co-authored-by: Jonas-Isr <[email protected]>
1 parent ffcb22e commit 42d7d22

File tree

2 files changed

+13
-32
lines changed

2 files changed

+13
-32
lines changed

orchestration/src/main/java/com/sap/ai/sdk/orchestration/TemplateConfig.java

Lines changed: 12 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -39,19 +39,21 @@ public static OrchestrationTemplate create() {
3939
*/
4040
@Nonnull
4141
public static ReferenceBuilder reference() {
42-
return new ReferenceBuilder();
42+
final var templ = TemplateRefByScenarioNameVersion.create();
43+
return s -> n -> v -> new OrchestrationTemplateReference(templ.scenario(s).name(n).version(v));
4344
}
4445

4546
/** Intermediate object to build a template reference. */
46-
public static class ReferenceBuilder {
47+
@FunctionalInterface
48+
public interface ReferenceBuilder {
4749
/**
4850
* Build a template reference with the given id.
4951
*
5052
* @param id The id of the template.
5153
* @return A template reference with the given id.
5254
*/
5355
@Nonnull
54-
public OrchestrationTemplateReference byId(@Nonnull final String id) {
56+
default OrchestrationTemplateReference byId(@Nonnull final String id) {
5557
return new OrchestrationTemplateReference(TemplateRefByID.create().id(id));
5658
}
5759

@@ -62,20 +64,14 @@ public OrchestrationTemplateReference byId(@Nonnull final String id) {
6264
* @return An intermediate object to build the template reference.
6365
*/
6466
@Nonnull
65-
public ReferenceBuilder1 byScenarioNameVersion(@Nonnull final String scenario) {
66-
return new ReferenceBuilder1(scenario);
67-
}
67+
ReferenceBuilder1 byScenario(@Nonnull final String scenario);
6868
}
6969

7070
/**
7171
* Intermediate object to build a template reference with the given scenario, name, and version.
7272
*/
73-
public static class ReferenceBuilder1 {
74-
@Nonnull private final String scenario;
75-
76-
private ReferenceBuilder1(@Nonnull final String scenario) {
77-
this.scenario = scenario;
78-
}
73+
@FunctionalInterface
74+
public interface ReferenceBuilder1 {
7975

8076
/**
8177
* Build a template reference with the given scenario, name, and version.
@@ -84,33 +80,21 @@ private ReferenceBuilder1(@Nonnull final String scenario) {
8480
* @return An intermediate object to build the template reference.
8581
*/
8682
@Nonnull
87-
public ReferenceBuilder2 name(@Nonnull final String name) {
88-
return new ReferenceBuilder2(scenario, name);
89-
}
83+
ReferenceBuilder2 name(@Nonnull final String name);
9084
}
9185

9286
/**
9387
* Intermediate object to build a template reference with the given scenario, name, and version.
9488
*/
95-
public static class ReferenceBuilder2 {
96-
@Nonnull private final String scenario;
97-
@Nonnull private final String name;
98-
99-
private ReferenceBuilder2(@Nonnull final String scenario, @Nonnull final String name) {
100-
this.scenario = scenario;
101-
this.name = name;
102-
}
103-
89+
@FunctionalInterface
90+
public interface ReferenceBuilder2 {
10491
/**
10592
* Build a template reference with the given scenario, name, and version.
10693
*
10794
* @param version The version of the template.
10895
* @return A template reference with the given scenario, name, and version.
10996
*/
11097
@Nonnull
111-
public OrchestrationTemplateReference version(@Nonnull final String version) {
112-
return new OrchestrationTemplateReference(
113-
TemplateRefByScenarioNameVersion.create().scenario(scenario).name(name).version(version));
114-
}
98+
OrchestrationTemplateReference version(@Nonnull final String version);
11599
}
116100
}

orchestration/src/test/java/com/sap/ai/sdk/orchestration/OrchestrationConvenienceUnitTest.java

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -124,10 +124,7 @@ void testTemplateReferenceConstruction() {
124124
assertThat(templateReferenceId.toLowLevel()).isEqualTo(templateReferenceIdLowLevel);
125125

126126
var templateReferenceScenarioNameVersion =
127-
TemplateConfig.reference()
128-
.byScenarioNameVersion("scenario")
129-
.name("name")
130-
.version("version");
127+
TemplateConfig.reference().byScenario("scenario").name("name").version("version");
131128
var expectedTemplateReferenceScenarioNameVersion =
132129
new OrchestrationTemplateReference(
133130
TemplateRefByScenarioNameVersion.create()

0 commit comments

Comments
 (0)