/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License"); you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package io.milton.mail;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
*
*/
public class StandardMessageImpl implements StandardMessage {
private final static Logger log = LoggerFactory.getLogger(StandardMessageImpl.class);
private MailboxAddress from;
private MailboxAddress replyTo;
private List<MailboxAddress> to = new ArrayList<MailboxAddress>();
private List<MailboxAddress> cc = new ArrayList<MailboxAddress>();
private List<MailboxAddress> bcc = new ArrayList<MailboxAddress>();
private String subject;
private String html;
private String text;
private List<Attachment> attachments = new ArrayList<Attachment>();
private List<StandardMessage> attachedMessages = new ArrayList<StandardMessage>();
private int size;
private String disposition;
private String encoding;
private String contentLanguage;
private Map<String, String> headers;
@Override
public List<StandardMessage> getAttachedMessages() {
return attachedMessages;
}
@Override
public void setAttachedMessages(List<StandardMessage> attachedMessages) {
this.attachedMessages = attachedMessages;
}
@Override
public String getSubject() {
return subject;
}
@Override
public MailboxAddress getFrom() {
return from;
}
public int size() {
return size;
}
@Override
public List<Attachment> getAttachments() {
return attachments;
}
@Override
public void setFrom(MailboxAddress from) {
this.from = from;
}
@Override
public MailboxAddress getReplyTo() {
return replyTo;
}
@Override
public void setReplyTo(MailboxAddress replyTo) {
this.replyTo = replyTo;
}
@Override
public void setSubject(String subject) {
this.subject = subject;
}
@Override
public String getHtml() {
return html;
}
@Override
public void setHtml(String html) {
this.html = html;
}
@Override
public String getText() {
return text;
}
@Override
public void setText(String text) {
this.text = text;
}
@Override
public int getSize() {
return size;
}
@Override
public void setSize(int size) {
this.size = size;
}
@Override
public void setDisposition(String disposition) {
this.disposition = disposition;
}
@Override
public String getDisposition() {
return disposition;
}
@Override
public void setEncoding(String encoding) {
this.encoding = encoding;
}
@Override
public String getEncoding() {
return encoding;
}
@Override
public void setContentLanguage(String contentLanguage) {
this.contentLanguage = contentLanguage;
}
@Override
public String getContentLanguage() {
return contentLanguage;
}
@Override
public Map<String, String> getHeaders() {
return headers;
}
@Override
public void setHeaders(Map<String, String> headers) {
this.headers = headers;
}
@Override
public List<MailboxAddress> getTo() {
return to;
}
@Override
public void setTo(List<MailboxAddress> to) {
this.to = to;
}
@Override
public List<MailboxAddress> getCc() {
return cc;
}
@Override
public void setCc(List<MailboxAddress> cc) {
this.cc = cc;
}
@Override
public List<MailboxAddress> getBcc() {
return bcc;
}
@Override
public void setBcc(List<MailboxAddress> bcc) {
this.bcc = bcc;
}
/**
*
* @return - creates and returns a new instance of StandardMesssage suitable
* for use as an attached message
*/
@Override
public StandardMessageImpl instantiateAttachedMessage() {
StandardMessageImpl sub = new StandardMessageImpl();
return sub;
}
@Override
public void addAttachment(String name, String ct, String contentId, String disposition, InputStream in) {
FileSystemAttachment att = new FileSystemAttachment(name, ct, in, contentId);
this.attachments.add(att);
}
}