Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -39,19 +39,21 @@ public static OrchestrationTemplate create() {
*/
@Nonnull
public static ReferenceBuilder reference() {
return new ReferenceBuilder();
final var templ = TemplateRefByScenarioNameVersion.create();
return s -> n -> v -> new OrchestrationTemplateReference(templ.scenario(s).name(n).version(v));
}

/** Intermediate object to build a template reference. */
public static class ReferenceBuilder {
@FunctionalInterface
public interface ReferenceBuilder {
/**
* Build a template reference with the given id.
*
* @param id The id of the template.
* @return A template reference with the given id.
*/
@Nonnull
public OrchestrationTemplateReference byId(@Nonnull final String id) {
default OrchestrationTemplateReference byId(@Nonnull final String id) {
return new OrchestrationTemplateReference(TemplateRefByID.create().id(id));
}

Expand All @@ -62,20 +64,14 @@ public OrchestrationTemplateReference byId(@Nonnull final String id) {
* @return An intermediate object to build the template reference.
*/
@Nonnull
public ReferenceBuilder1 byScenarioNameVersion(@Nonnull final String scenario) {
return new ReferenceBuilder1(scenario);
}
ReferenceBuilder1 byScenario(@Nonnull final String scenario);
}

/**
* Intermediate object to build a template reference with the given scenario, name, and version.
*/
public static class ReferenceBuilder1 {
@Nonnull private final String scenario;

private ReferenceBuilder1(@Nonnull final String scenario) {
this.scenario = scenario;
}
@FunctionalInterface
public interface ReferenceBuilder1 {

/**
* Build a template reference with the given scenario, name, and version.
Expand All @@ -84,33 +80,21 @@ private ReferenceBuilder1(@Nonnull final String scenario) {
* @return An intermediate object to build the template reference.
*/
@Nonnull
public ReferenceBuilder2 name(@Nonnull final String name) {
return new ReferenceBuilder2(scenario, name);
}
ReferenceBuilder2 name(@Nonnull final String name);
}

/**
* Intermediate object to build a template reference with the given scenario, name, and version.
*/
public static class ReferenceBuilder2 {
@Nonnull private final String scenario;
@Nonnull private final String name;

private ReferenceBuilder2(@Nonnull final String scenario, @Nonnull final String name) {
this.scenario = scenario;
this.name = name;
}

@FunctionalInterface
public interface ReferenceBuilder2 {
/**
* Build a template reference with the given scenario, name, and version.
*
* @param version The version of the template.
* @return A template reference with the given scenario, name, and version.
*/
@Nonnull
public OrchestrationTemplateReference version(@Nonnull final String version) {
return new OrchestrationTemplateReference(
TemplateRefByScenarioNameVersion.create().scenario(scenario).name(name).version(version));
}
OrchestrationTemplateReference version(@Nonnull final String version);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -124,10 +124,7 @@ void testTemplateReferenceConstruction() {
assertThat(templateReferenceId.toLowLevel()).isEqualTo(templateReferenceIdLowLevel);

var templateReferenceScenarioNameVersion =
TemplateConfig.reference()
.byScenarioNameVersion("scenario")
.name("name")
.version("version");
TemplateConfig.reference().byScenario("scenario").name("name").version("version");
var expectedTemplateReferenceScenarioNameVersion =
new OrchestrationTemplateReference(
TemplateRefByScenarioNameVersion.create()
Expand Down
Loading