📄 mockmimemessage.java
字号:
/**************************************************************** * 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 org.apache.james.test.mock.javaxmail;import javax.mail.internet.MimeMessage;import javax.mail.internet.InternetHeaders;import javax.mail.internet.InternetAddress;import javax.mail.*;import javax.mail.search.SearchTerm;import javax.activation.DataHandler;import java.util.*;import java.io.InputStream;import java.io.IOException;import java.io.OutputStream;import java.io.UnsupportedEncodingException;public class MockMimeMessage extends MimeMessage { private final List m_fromAddresses = new ArrayList(); private Address m_senderAddress; private final List m_toRecepients = new ArrayList(); private final List m_ccRecepients = new ArrayList(); private final List m_bccRecepients = new ArrayList(); private final List m_replyToAddresses = new ArrayList(); private String m_subject; private int m_iMessageNumber; private boolean m_bIsExpunged; private Object m_content; private Date m_sentDate; private String[] m_contentLanguage; private String m_fileName; private DataHandler m_dataHandler; private HashMap m_contentHeaders = new HashMap(); private Flags m_setFlags = new Flags(); private boolean m_doMatch; public MockMimeMessage() throws MessagingException { super((Session)null); } public MockMimeMessage(MimeMessage mimeMessage) throws MessagingException { super(mimeMessage); // trivial implementation } public Address[] getFrom() throws MessagingException { return (Address[])m_fromAddresses.toArray(); } public void setFrom(Address address) throws MessagingException { m_fromAddresses.clear(); m_fromAddresses.add(address); } public void setFrom() throws MessagingException { m_fromAddresses.clear(); m_fromAddresses.add(InternetAddress.getLocalAddress(null)); } public void addFrom(Address[] addresses) throws MessagingException { m_fromAddresses.add(addresses); } public Address getSender() throws MessagingException { return m_senderAddress; } public void setSender(Address address) throws MessagingException { m_senderAddress = address; } public Address[] getRecipients(Message.RecipientType recipientType) throws MessagingException { return (Address[]) getRecipientsList(recipientType).toArray(); } private List getRecipientsList(Message.RecipientType recipientType) { if (Message.RecipientType.TO.equals(recipientType)) return m_toRecepients; if (Message.RecipientType.CC.equals(recipientType)) return m_ccRecepients; if (Message.RecipientType.BCC.equals(recipientType)) return m_bccRecepients; return null; } public Address[] getAllRecipients() throws MessagingException { List allRecipients = new ArrayList(); allRecipients.addAll(m_toRecepients); allRecipients.addAll(m_ccRecepients); allRecipients.addAll(m_bccRecepients); return (Address[]) allRecipients.toArray(); } public void setRecipients(Message.RecipientType recipientType, Address[] addresses) throws MessagingException { getRecipientsList(recipientType).addAll(Arrays.asList(addresses)); } public void setRecipients(Message.RecipientType recipientType, String recipient) throws MessagingException { getRecipientsList(recipientType).add(recipient); } public void addRecipients(Message.RecipientType recipientType, Address[] addresses) throws MessagingException { getRecipientsList(recipientType).addAll(Arrays.asList(addresses)); } public void addRecipients(Message.RecipientType recipientType, String recipient) throws MessagingException { getRecipientsList(recipientType).add(recipient); } public Address[] getReplyTo() throws MessagingException { return (Address[]) m_replyToAddresses.toArray(); } public void setReplyTo(Address[] addresses) throws MessagingException { m_replyToAddresses.addAll(Arrays.asList(addresses)); } public String getSubject() throws MessagingException { return m_subject; } public void setSubject(String subject) throws MessagingException { m_subject = subject; } public void setSubject(String subject, String charset) throws MessagingException { if (subject == null) { m_subject = null; return; } try { m_subject = new String(subject.getBytes(charset)); } catch (UnsupportedEncodingException e) { throw new MessagingException("setting subject failed", e); } } public Date getSentDate() throws MessagingException { return m_sentDate; } public void setSentDate(Date date) throws MessagingException { m_sentDate = date; } public Date getReceivedDate() throws MessagingException { return null; // trivial implementation } public int getSize() throws MessagingException { return -1; // trivial implementation } public int getLineCount() throws MessagingException { return -1; // trivial implementation } public String getContentType() throws MessagingException { return getHeader("Content-Type", null); } public boolean isMimeType(String mimeType) throws MessagingException { return mimeType.startsWith(getContentType()); } public String getDisposition() throws MessagingException { return getHeader("Content-Disposition", null); } public void setDisposition(String disposition) throws MessagingException { setHeader("Content-Disposition", disposition); } public String getEncoding() throws MessagingException { return getHeader("Content-Transfer-Encoding", null); } public String getContentID() throws MessagingException { return getHeader("Content-ID", null); } public void setContentID(String contentID) throws MessagingException { setHeader("Content-ID", contentID); } public String getContentMD5() throws MessagingException { return getHeader("Content-MD5", null); } public void setContentMD5(String value) throws MessagingException { setHeader("Content-MD5", value); } public String getDescription() throws MessagingException { return getHeader("Content-Description", null); } public void setDescription(String description) throws MessagingException { setHeader("Content-Description", description); } public void setDescription(String description, String charset) throws MessagingException { try { setDescription(new String(description.getBytes(charset))); } catch (UnsupportedEncodingException e) { throw new MessagingException("setting description failed", e); } } public String[] getContentLanguage() throws MessagingException { return m_contentLanguage; } public void setContentLanguage(String[] contentLanguage) throws MessagingException { m_contentLanguage = contentLanguage; } public String getMessageID() throws MessagingException { return "ID-" + m_iMessageNumber; // trivial implementation }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -