// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.hosted.controller.api.integration.organization; import com.yahoo.prelude.IndexFacts; import java.util.Collection; import java.util.List; import java.util.Objects; import java.util.Optional; /** * A message with a subject and a nonempty set of recipients. * * @author jonmv */ public class Mail { private final Collection recipients; private final String subject; private final String message; private final Optional htmlMessage; public Mail(Collection recipients, String subject, String message) { this(recipients, subject, message, Optional.empty()); } public Mail(Collection recipients, String subject, String message, String htmlMessage) { this(recipients, subject, message, Optional.of(htmlMessage)); } Mail(Collection recipients, String subject, String message, Optional htmlMessage) { if (recipients.isEmpty()) throw new IllegalArgumentException("Empty recipient list is not allowed."); recipients.forEach(Objects::requireNonNull); this.recipients = List.copyOf(recipients); this.subject = Objects.requireNonNull(subject); this.message = Objects.requireNonNull(message); this.htmlMessage = Objects.requireNonNull(htmlMessage); } public Collection recipients() { return recipients; } public String subject() { return subject; } public String message() { return message; } public Optional htmlMessage() { return htmlMessage; } }