From 7c4fe97357fb5b4782bc56d631b6d11d8ce78664 Mon Sep 17 00:00:00 2001 From: Valerij Fredriksen Date: Mon, 14 Mar 2022 23:28:54 +0100 Subject: Extend contact --- .../hosted/controller/tenant/TenantContacts.java | 52 ++++++++-------------- 1 file changed, 18 insertions(+), 34 deletions(-) (limited to 'controller-api/src/main') diff --git a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/TenantContacts.java b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/TenantContacts.java index 25e91fe0700..8573beefbab 100644 --- a/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/TenantContacts.java +++ b/controller-api/src/main/java/com/yahoo/vespa/hosted/controller/tenant/TenantContacts.java @@ -14,9 +14,9 @@ import java.util.Optional; * @author ogronnesby */ public class TenantContacts { - private final List> contacts; + private final List contacts; - public TenantContacts(List> contacts) { + public TenantContacts(List contacts) { this.contacts = List.copyOf(contacts); } @@ -24,7 +24,7 @@ public class TenantContacts { return new TenantContacts(List.of()); } - public List> all() { + public List all() { return contacts; } @@ -52,54 +52,38 @@ public class TenantContacts { '}'; } - public static class Contact { - private final Type type; + public abstract static class Contact { private final List audiences; - protected final T data; - public Contact(Type type, List audiences, T data) { - this.type = type; - this.audiences = audiences; - this.data = data; + public Contact(List audiences) { + this.audiences = List.copyOf(audiences); if (audiences.isEmpty()) throw new IllegalArgumentException("audience cannot be empty"); } - public Type type() { return type; } public List audiences() { return audiences; } - public T data() { return data; } - @Override - public boolean equals(Object o) { - if (this == o) return true; - if (o == null || getClass() != o.getClass()) return false; - Contact contact = (Contact) o; - return type == contact.type && audiences.equals(contact.audiences) && data.equals(contact.data); - } - - @Override - public int hashCode() { - return Objects.hash(type, audiences, data); - } + public abstract Type type(); - @Override - public String toString() { - return "Contact{" + - "type=" + type + - ", audience=" + audiences + - ", data=" + data + - '}'; - } + public abstract boolean equals(Object o); + public abstract int hashCode(); + public abstract String toString(); } - public static class EmailContact { + public static class EmailContact extends Contact { private final String email; - public EmailContact(String email) { + public EmailContact(List audiences, String email) { + super(audiences); this.email = email; } public String email() { return email; } + @Override + public Type type() { + return Type.EMAIL; + } + @Override public boolean equals(Object o) { if (this == o) return true; -- cgit v1.2.3