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

📄 comparatorstrategy.java

📁 手机邮箱撒的方式方式方式的
💻 JAVA
字号:
package mujmail.ordering;

import mujmail.ordering.comparator.AddresseeComparator;
import mujmail.ordering.comparator.MessageIDComparator;
import mujmail.ordering.comparator.OriginatorDateTimeComparator;
import mujmail.ordering.comparator.RecipientComparator;
import mujmail.ordering.comparator.RecordIDComparator;
import mujmail.ordering.comparator.SizeComparator;
import mujmail.ordering.comparator.SubjectComparator;
import mujmail.ordering.comparator.ThreadingMessageIDComparator;

/**
 * Is used for obtaining comparators usable for sorting mails. 
 */
public class ComparatorStrategy {
    /** Instance of this singleton */
    private static final ComparatorStrategy strategy = new ComparatorStrategy();

    /**
     * Gets singleton ComparatorStrategy object.
     * @return Instance of ComparatorStrategy object
     */
    public static ComparatorStrategy getStrategy() {
        return strategy;
    }

    /** Private constructor to disable instance creation. */
    private ComparatorStrategy() {}

    /**
     * Gets proper Comparator for given sorting and ordering type.
     * 
     * @param ordering Specify if ordering is decreasing or increasing
     * @param criterion Spefify mail etry that is used as key for sorting
     * @return Comparator class which compare mail according given sorting requirements.
     */
    public Comparator getComparator(final Ordering ordering, final Criterion criterion) {
        if ( criterion == Criterion.TIME ) {
            return new OriginatorDateTimeComparator( ordering );
        } else if ( criterion == Criterion.SUBJECT ) {
            return new SubjectComparator( ordering );
        } else if ( criterion == Criterion.TO ) {
            return new RecipientComparator( ordering );
        } else if ( criterion == Criterion.FROM ) {
            return new AddresseeComparator( ordering );
        } else if ( criterion == Criterion.SIZE ) {
            return new SizeComparator( ordering );
        } else if ( criterion == Criterion.RECORD_ID ) {
            return new RecordIDComparator( ordering );
        } else if ( criterion == Criterion.MESSAGE_ID ) {
            return new MessageIDComparator( ordering );
        } else if ( criterion == Criterion.THREADING_MESSAGE_ID ) {
            return new ThreadingMessageIDComparator( ordering );
        } else {
            //#ifdef MUJMAIL_DEVELOPMENT
//#                 System.out.println("ERROR - returning null comparator for ordering: " + ordering + " and criterion: " + criterion);
            //#endif
            return new OriginatorDateTimeComparator( ordering ); // TODO: return null
        }
            
    }
    
}

⌨️ 快捷键说明

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