diff options
author | Ola Aunronning <olaa@yahooinc.com> | 2023-10-24 14:14:44 +0200 |
---|---|---|
committer | Ola Aunronning <olaa@yahooinc.com> | 2023-10-24 14:14:44 +0200 |
commit | 1e92bd3eaac015e2794298e392a69bb8b218a57b (patch) | |
tree | e35c907b06cc4f8ee32fd97a0815a3785a19fd39 /controller-api | |
parent | 900209e698fc4921103c505ed357eb368059e1a4 (diff) |
Wrap attributes in StringWrapper
Diffstat (limited to 'controller-api')
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); } |