summaryrefslogtreecommitdiffstats
path: root/config-provisioning/src/main/java/com
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2022-11-14 11:01:56 +0100
committerMartin Polden <mpolden@mpolden.no>2022-11-14 11:37:14 +0100
commitab09b81951e20cd85d8c2e595ca02be9e3deae77 (patch)
tree1ce1a17d815c965ca30d6f1c463b3e9edb165c46 /config-provisioning/src/main/java/com
parent0979fffb39994efb81fb6f51daf807dc696eae26 (diff)
Extract factory method
Diffstat (limited to 'config-provisioning/src/main/java/com')
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/CloudAccount.java11
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java2
2 files changed, 10 insertions, 3 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/CloudAccount.java b/config-provisioning/src/main/java/com/yahoo/config/provision/CloudAccount.java
index 0e709575627..d0dc88ebcbc 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/CloudAccount.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/CloudAccount.java
@@ -15,8 +15,8 @@ public class CloudAccount extends PatternedStringWrapper<CloudAccount> {
public static final CloudAccount empty = new CloudAccount("");
public static final CloudAccount default_ = new CloudAccount("default");
- public CloudAccount(String value) {
- super(value, Pattern.compile("^([0-9]{12}|default)?$"), "cloud account");
+ private CloudAccount(String value) {
+ super(value, Pattern.compile("^([0-9]{12})?$"), "cloud account");
}
public boolean isEmpty() {
@@ -25,6 +25,13 @@ public class CloudAccount extends PatternedStringWrapper<CloudAccount> {
public boolean isDefault() { return this.equals(default_); }
+ public static CloudAccount from(String cloudAccount) {
+ return switch (cloudAccount) {
+ case "" -> empty;
+ default -> new CloudAccount(cloudAccount);
+ };
+ }
+
@Override
public String toString() {
return isEmpty() ? "unspecified account" : "account '" + value() + "'";
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java
index 8b662c4f66b..b1a9ecac394 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/Zone.java
@@ -27,7 +27,7 @@ public class Zone {
.name(CloudName.from(configserverConfig.cloud()))
.dynamicProvisioning(cloudConfig.dynamicProvisioning())
.requireAccessControl(cloudConfig.requireAccessControl())
- .account(cloudConfig.account().isEmpty() ? CloudAccount.empty : new CloudAccount(cloudConfig.account()))
+ .account(CloudAccount.from(cloudConfig.account()))
.build(),
SystemName.from(configserverConfig.system()),
Environment.from(configserverConfig.environment()),