From dc343ea705c0ef19ca4ba57ce282d8fbc0787131 Mon Sep 17 00:00:00 2001 From: Quincy Bowers Date: Fri, 29 May 2020 11:21:03 -0600 Subject: [PATCH] Delombok NetworkBuilderImpl My intent is to put this back without the id field after the deprecation cycle. --- .../testcontainers/containers/Network.java | 79 ++++++++++++++++++- 1 file changed, 75 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/org/testcontainers/containers/Network.java b/core/src/main/java/org/testcontainers/containers/Network.java index 24b18b98a5b..132f800c162 100644 --- a/core/src/main/java/org/testcontainers/containers/Network.java +++ b/core/src/main/java/org/testcontainers/containers/Network.java @@ -1,6 +1,8 @@ package org.testcontainers.containers; import com.github.dockerjava.api.command.CreateNetworkCmd; +import java.util.ArrayList; +import java.util.Collection; import lombok.Builder; import lombok.Getter; import lombok.Singular; @@ -44,15 +46,14 @@ class NetworkImpl extends ExternalResource implements Network { /** @deprecated The id field was never user modifiable, so should not have been exposed. */ @Deprecated - public NetworkImpl(Boolean enableIpv6, String driver, Set> createNetworkCmdModifiers, String id) { + public NetworkImpl(Boolean enableIpv6, String driver, @Singular Set> createNetworkCmdModifiers, String id) { this.enableIpv6 = enableIpv6; this.driver = driver; this.createNetworkCmdModifiers = createNetworkCmdModifiers; - this.id = id; } - @Builder - private NetworkImpl(Boolean enableIpv6, String driver, @Singular Set> createNetworkCmdModifiers) { + // @Builder // Uncomment after NetworkImplBuilder.id has gone through deprecation cycle + public NetworkImpl(Boolean enableIpv6, String driver, @Singular Set> createNetworkCmdModifiers) { this.enableIpv6 = enableIpv6; this.driver = driver; this.createNetworkCmdModifiers = createNetworkCmdModifiers; @@ -71,6 +72,10 @@ private NetworkImpl(Boolean enableIpv6, String driver, @Singular Set> createNetworkCmdModifiers; + private String id; + + NetworkImplBuilder() { + } + + public NetworkImplBuilder enableIpv6(Boolean enableIpv6) { + this.enableIpv6 = enableIpv6; + return this; + } + + public NetworkImplBuilder driver(String driver) { + this.driver = driver; + return this; + } + + public NetworkImplBuilder createNetworkCmdModifier(Consumer createNetworkCmdModifier) { + if (this.createNetworkCmdModifiers == null) this.createNetworkCmdModifiers = new ArrayList>(); + this.createNetworkCmdModifiers.add(createNetworkCmdModifier); + return this; + } + + public NetworkImplBuilder createNetworkCmdModifiers(Collection> createNetworkCmdModifiers) { + if (this.createNetworkCmdModifiers == null) this.createNetworkCmdModifiers = new ArrayList>(); + this.createNetworkCmdModifiers.addAll(createNetworkCmdModifiers); + return this; + } + + public NetworkImplBuilder clearCreateNetworkCmdModifiers() { + if (this.createNetworkCmdModifiers != null) + this.createNetworkCmdModifiers.clear(); + return this; + } + + /** @deprecated The id field was never user modifiable, so should not have been exposed. */ + @Deprecated + public NetworkImplBuilder id(String id) { + return this; + } + + public NetworkImpl build() { + Set> createNetworkCmdModifiers; + switch (this.createNetworkCmdModifiers == null ? 0 : this.createNetworkCmdModifiers.size()) { + case 0: + createNetworkCmdModifiers = Collections.emptySet(); + break; + case 1: + createNetworkCmdModifiers = Collections.singleton(this.createNetworkCmdModifiers.get(0)); + break; + default: + createNetworkCmdModifiers = new java.util.LinkedHashSet>(this.createNetworkCmdModifiers.size() < 1073741824 ? 1 + this.createNetworkCmdModifiers.size() + (this.createNetworkCmdModifiers.size() - 3) / 3 : Integer.MAX_VALUE); + createNetworkCmdModifiers.addAll(this.createNetworkCmdModifiers); + createNetworkCmdModifiers = Collections.unmodifiableSet(createNetworkCmdModifiers); + } + + return new NetworkImpl(enableIpv6, driver, createNetworkCmdModifiers, id); + } + + public String toString() { + return "Network.NetworkImpl.NetworkImplBuilder(enableIpv6=" + this.enableIpv6 + ", driver=" + this.driver + ", createNetworkCmdModifiers=" + this.createNetworkCmdModifiers + ")"; + } + } } }