⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 messagecomparator.java

📁 Eclipse RCP下编写的工作管理软件代码
💻 JAVA
字号:
package net.sf.pim.mail.reader;

import java.text.Collator;
import java.util.Comparator;
import java.util.Locale;

import javax.mail.Message;
import javax.mail.MessagingException;

/**
 * 邮件的比较器
 * @author levin
 */
public class MessageComparator implements Comparator {
    private String prop; //比较的属性
    private boolean asc; //是否升序 

	public MessageComparator(String prop, boolean asc) {
		super();
		this.prop = prop;
		this.asc = asc;
	}

	public int compare(Object o1, Object o2) {
		if(o1 instanceof Message && o2 instanceof Message){
			if(asc)
				return compareMessage((Message)o1,(Message)o2);
			else
				return compareMessage((Message)o2,(Message)o1);
		}
		return 0;
	}

	private int compareMessage(Message message1, Message message2) {
		try {
			//收件用接收时间,发件用发送时间
			if(prop.equals("Date")){
				if(message1.getReceivedDate() != null && message2.getReceivedDate() != null)
					return message1.getReceivedDate().compareTo(message2.getReceivedDate());
				else
					return message1.getSentDate().compareTo(message2.getSentDate());
			}
			Collator collator = Collator.getInstance(Locale.getDefault());
			String[] p1 = message1.getHeader(prop);
			String[] p2=message2.getHeader(prop);
			if(p1.length < 1 || p2.length < 1)
				return 0;
			return collator.compare(p1[0], p2[0]);
		} catch (MessagingException e) {
			return 0;
		}
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -