/*
* Copyright LGPL3
* YES Technology Association
* http://yestech.org
*
* http://www.opensource.org/licenses/lgpl-3.0.html
*/
package org.yestech.notify.objectmodel;
import org.yestech.notify.template.ITemplateLanguage;
import java.io.Serializable;
import java.util.Collection;
/**
* Represents a Persistable Message to be delivered by Mail.
*
*/
public interface INotification extends Serializable, Comparable<INotification> {
static final long serialVersionUID = 8897680828148707131L;
/**
* Returns the {@link org.yestech.notify.template.ITemplateLanguage} to apply.
*
* @return The Template
*/
public ITemplateLanguage getTemplate();
/**
* Return the {@link NotificationJob} this message is associated with.
*
* @return The NotificationJob
*/
public INotificationJob getJob();
public void setJob(INotificationJob job);
/**
* Return the {@link Sender} of the Message
*
* @return The sender
*/
public ISender getSender();
/**
* Return the {@link Recipient}s of the Message
*
* @return The Recipients
*/
public Collection<IRecipient> getRecipients();
/**
* Return the {@link Recipient}s of the Message who are to be
* copied
*
* @return The Recipients
*/
public Collection<IRecipient> getCopyRecipients();
/**
* Return the {@link Recipient}s of the Message who are to be
* blindly copied
*
* @return The Recipients
*/
public Collection<IRecipient> getBlindCopyRecipients();
/**
* Return the number of {@link Recipient}s
*
* @return Count of recipients
*/
public int recipientSize();
/**
* Return the number of Copy {@link Recipient}s
*
* @return Count of copy recipients
*/
public int copyRecipientSize();
/**
* Return the number of Blind Copy {@link Recipient}s
*
* @return Count of blind copy recipients
*/
public int blindRecipientSize();
/**
* Return the number of Total {@link Recipient}s
*
* @return Count of total recipients
*/
public int recipientTotalSize();
/**
* Return the Message to send.
*
* @return The message
*/
public IMessage getMessage();
}