aboutsummaryrefslogtreecommitdiffstats
path: root/controller-api
diff options
context:
space:
mode:
authorOla Aunronning <olaa@yahooinc.com>2023-10-24 14:14:44 +0200
committerOla Aunronning <olaa@yahooinc.com>2023-10-24 14:14:44 +0200
commit1e92bd3eaac015e2794298e392a69bb8b218a57b (patch)
treee35c907b06cc4f8ee32fd97a0815a3785a19fd39 /controller-api
parent900209e698fc4921103c505ed357eb368059e1a4 (diff)
Wrap attributes in StringWrapper
Diffstat (limited to 'controller-api')
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/Email.java4
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/PurchaseOrder.java21
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/TaxCode.java21
-rw-r--r--controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/TenantBilling.java22
4 files changed, 57 insertions, 11 deletions
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/Email.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/Email.java
index c1c8a780df1..702a183e7af 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/Email.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/Email.java
@@ -36,6 +36,10 @@ public class Email {
return new Email(emailAddress, isVerified);
}
+ public boolean isBlank() {
+ return emailAddress.isBlank();
+ }
+
@Override
public boolean equals(Object o) {
if (this == o) return true;
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/PurchaseOrder.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/PurchaseOrder.java
new file mode 100644
index 00000000000..d222864a388
--- /dev/null
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/PurchaseOrder.java
@@ -0,0 +1,21 @@
+// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.vespa.hosted.controller.tenant;
+
+import ai.vespa.validation.StringWrapper;
+
+import static ai.vespa.validation.Validation.requireLength;
+
+/**
+ * @author olaa
+ */
+public class PurchaseOrder extends StringWrapper<PurchaseOrder> {
+
+ public PurchaseOrder(String value) {
+ super(value);
+ requireLength(value, "purchase order length", 0, 64);
+ }
+
+ public static PurchaseOrder empty() {
+ return new PurchaseOrder("");
+ }
+}
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/TaxCode.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/TaxCode.java
new file mode 100644
index 00000000000..39176d2428d
--- /dev/null
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/TaxCode.java
@@ -0,0 +1,21 @@
+// Copyright Vespa.ai. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.vespa.hosted.controller.tenant;
+
+import ai.vespa.validation.StringWrapper;
+
+import static ai.vespa.validation.Validation.requireLength;
+
+/**
+ * @author olaa
+ */
+public class TaxCode extends StringWrapper<TaxCode> {
+
+ public TaxCode(String value) {
+ super(value);
+ requireLength(value, "tax code length", 0, 64);
+ }
+
+ public static TaxCode empty() {
+ return new TaxCode("");
+ }
+}
diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/TenantBilling.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/TenantBilling.java
index 1f8e59d7993..ee23ae31183 100644
--- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/TenantBilling.java
+++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/TenantBilling.java
@@ -10,11 +10,11 @@ public class TenantBilling {
private final TenantContact contact;
private final TenantAddress address;
- private final String taxCode;
- private final String purchaseOrder;
- private final String invoiceEmail;
+ private final TaxCode taxCode;
+ private final PurchaseOrder purchaseOrder;
+ private final Email invoiceEmail;
- public TenantBilling(TenantContact contact, TenantAddress address, String taxCode, String purchaseOrder, String invoiceEmail) {
+ public TenantBilling(TenantContact contact, TenantAddress address, TaxCode taxCode, PurchaseOrder purchaseOrder, Email invoiceEmail) {
this.contact = Objects.requireNonNull(contact);
this.address = Objects.requireNonNull(address);
this.taxCode = Objects.requireNonNull(taxCode);
@@ -23,7 +23,7 @@ public class TenantBilling {
}
public static TenantBilling empty() {
- return new TenantBilling(TenantContact.empty(), TenantAddress.empty(), "", "", "");
+ return new TenantBilling(TenantContact.empty(), TenantAddress.empty(), TaxCode.empty(), PurchaseOrder.empty(), Email.empty());
}
public TenantContact contact() {
@@ -34,15 +34,15 @@ public class TenantBilling {
return address;
}
- public String getTaxCode() {
+ public TaxCode getTaxCode() {
return taxCode;
}
- public String getPurchaseOrder() {
+ public PurchaseOrder getPurchaseOrder() {
return purchaseOrder;
}
- public String getInvoiceEmail() {
+ public Email getInvoiceEmail() {
return invoiceEmail;
}
@@ -54,15 +54,15 @@ public class TenantBilling {
return new TenantBilling(this.contact, updatedAddress, this.taxCode, this.purchaseOrder, this.invoiceEmail);
}
- public TenantBilling withTaxCode(String updatedTaxCode) {
+ public TenantBilling withTaxCode(TaxCode updatedTaxCode) {
return new TenantBilling(this.contact, this.address, updatedTaxCode, this.purchaseOrder, this.invoiceEmail);
}
- public TenantBilling withPurchaseOrder(String updatedPurchaseOrder) {
+ public TenantBilling withPurchaseOrder(PurchaseOrder updatedPurchaseOrder) {
return new TenantBilling(this.contact, this.address, this.taxCode, updatedPurchaseOrder, this.invoiceEmail);
}
- public TenantBilling withInvoiceEmail(String updatedInvoiceEmail) {
+ public TenantBilling withInvoiceEmail(Email updatedInvoiceEmail) {
return new TenantBilling(this.contact, this.address, this.taxCode, this.purchaseOrder, updatedInvoiceEmail);
}