Author: norman
Date: Thu Apr 28 10:45:55 2011
New Revision: 1097408

URL: http://svn.apache.org/viewvc?rev=1097408&view=rev
Log:
Let Message interface extend Comparable

Added:
    james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/mail/
    
james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/mail/model/
    
james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/mail/model/AbstractMessageTest.java
      - copied, changed from r1097402, 
james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/MessageRowUtilsTest.java
Removed:
    
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/model/MessageComparator.java
    
james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/MessageRowUtilsTest.java
Modified:
    
james/mailbox/trunk/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
    
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/MimeDescriptorImpl.java
    
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java
    
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
    
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/model/AbstractMessage.java
    
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/model/Message.java
    
james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/SimpleMailboxMembership.java

Modified: 
james/mailbox/trunk/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java?rev=1097408&r1=1097407&r2=1097408&view=diff
==============================================================================
--- 
james/mailbox/trunk/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
 (original)
+++ 
james/mailbox/trunk/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
 Thu Apr 28 10:45:55 2011
@@ -35,7 +35,6 @@ import org.apache.james.mailbox.inmemory
 import org.apache.james.mailbox.store.mail.MessageMapper;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
 import org.apache.james.mailbox.store.mail.model.Message;
-import org.apache.james.mailbox.store.mail.model.MessageComparator;
 import org.apache.james.mailbox.store.transaction.NonTransactionalMapper;
 
 public class InMemoryMessageMapper extends NonTransactionalMapper implements 
MessageMapper<Long> {
@@ -127,7 +126,7 @@ public class InMemoryMessageMapper exten
                 results = new ArrayList<Message<Long>>();
                 break;
         }
-        Collections.sort(results, MessageComparator.INSTANCE);
+        Collections.sort(results);
         
         if(batchSize > 0) {
                int i = 0;
@@ -175,7 +174,7 @@ public class InMemoryMessageMapper exten
                 results.add(member);
             }
         }
-        Collections.sort(results, MessageComparator.INSTANCE);
+        Collections.sort(results);
         
         return results;
     }
@@ -186,7 +185,7 @@ public class InMemoryMessageMapper exten
      */
     public Long findFirstUnseenMessageUid(Mailbox<Long> mailbox) throws 
MailboxException {
         List<Message<Long>> memberships = new 
ArrayList<Message<Long>>(getMembershipByUidForMailbox(mailbox).values());
-        Collections.sort(memberships, MessageComparator.INSTANCE);
+        Collections.sort(memberships);
         for (int i = 0;  i < memberships.size(); i++) {
             Message<Long> m = memberships.get(i);
             if (m.isSeen() == false) {

Modified: 
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/MimeDescriptorImpl.java
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/MimeDescriptorImpl.java?rev=1097408&r1=1097407&r2=1097408&view=diff
==============================================================================
--- 
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/MimeDescriptorImpl.java
 (original)
+++ 
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/MimeDescriptorImpl.java
 Thu Apr 28 10:45:55 2011
@@ -43,7 +43,7 @@ import org.apache.james.mime4j.parser.Re
 
 public class MimeDescriptorImpl implements MimeDescriptor {
 
-    public static MimeDescriptorImpl build(final Message document) throws 
IOException, MimeException {
+    public static MimeDescriptorImpl build(final Message<?> document) throws 
IOException, MimeException {
         final MimeDescriptorImpl result;
         final String mediaType = document.getMediaType();
         if (isComposite(mediaType)) {

Modified: 
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java?rev=1097408&r1=1097407&r2=1097408&view=diff
==============================================================================
--- 
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java
 (original)
+++ 
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java
 Thu Apr 28 10:45:55 2011
@@ -26,11 +26,8 @@ import java.nio.charset.Charset;
 import java.util.ArrayList;
 import java.util.Collection;
 import java.util.Collections;
-import java.util.Comparator;
 import java.util.List;
 
-import javax.swing.text.Document;
-
 import org.apache.james.mailbox.Content;
 import org.apache.james.mailbox.MailboxException;
 import org.apache.james.mailbox.MessageResult;
@@ -375,24 +372,4 @@ public class ResultUtils {
             messageResult.setFullContent(mimePath, content);
         }
     }
-
-    /**
-     * Gets a comparator that evaluates {@link Document}'s on the basis of
-     * their UIDs.
-     * 
-     * @return {@link Comparator}, not null
-     */
-    public static Comparator<Message<?>> getUidComparator() {
-        return UidComparator.INSTANCE;
-    }
-
-    private static final class UidComparator implements Comparator<Message<?>> 
{
-        private static final UidComparator INSTANCE = new UidComparator();
-
-        public int compare(Message<?> one, Message<?> two) {
-            final int result = (int) (one.getUid() - two.getUid());
-            return result;
-        }
-
-    }
 }

Modified: 
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java?rev=1097408&r1=1097407&r2=1097408&view=diff
==============================================================================
--- 
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
 (original)
+++ 
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
 Thu Apr 28 10:45:55 2011
@@ -55,7 +55,6 @@ import org.apache.james.mailbox.store.ma
 import org.apache.james.mailbox.store.mail.model.Header;
 import org.apache.james.mailbox.store.mail.model.Mailbox;
 import org.apache.james.mailbox.store.mail.model.Message;
-import org.apache.james.mailbox.store.mail.model.MessageComparator;
 import org.apache.james.mailbox.store.mail.model.PropertyBuilder;
 import org.apache.james.mailbox.store.streaming.ConfigurableMimeTokenStream;
 import org.apache.james.mailbox.store.streaming.CountingInputStream;
@@ -618,7 +617,7 @@ public abstract class StoreMessageManage
                     }
                 }
             });
-            Collections.sort(hits, MessageComparator.INSTANCE);
+            Collections.sort(hits);
             
             return new SearchQueryIterator(new Iterator<Message<?>>() {
                 final Iterator<Message<Id>> it = hits.iterator();

Modified: 
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/model/AbstractMessage.java
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/model/AbstractMessage.java?rev=1097408&r1=1097407&r2=1097408&view=diff
==============================================================================
--- 
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/model/AbstractMessage.java
 (original)
+++ 
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/model/AbstractMessage.java
 Thu Apr 28 10:45:55 2011
@@ -26,7 +26,7 @@ import javax.mail.Flags;
  * Abstract base class for {@link Message}
  *
  */
-public abstract class AbstractMessage<Id> implements Message<Id>, 
Comparable<Message<Id>> {
+public abstract class AbstractMessage<Id> implements Message<Id> {
     
 
     /*

Modified: 
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/model/Message.java
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/model/Message.java?rev=1097408&r1=1097407&r2=1097408&view=diff
==============================================================================
--- 
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/model/Message.java
 (original)
+++ 
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/model/Message.java
 Thu Apr 28 10:45:55 2011
@@ -30,7 +30,7 @@ import javax.mail.Flags;
  * plus body content. In the case of multipart documents, this body content
  * has internal structure described by the meta-data.
  */
-public interface Message<Id> {
+public interface Message<Id> extends Comparable<Message<Id>>{
 
     public abstract Date getInternalDate();
 

Modified: 
james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/SimpleMailboxMembership.java
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/SimpleMailboxMembership.java?rev=1097408&r1=1097407&r2=1097408&view=diff
==============================================================================
--- 
james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/SimpleMailboxMembership.java
 (original)
+++ 
james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/SimpleMailboxMembership.java
 Thu Apr 28 10:45:55 2011
@@ -329,4 +329,14 @@ public class SimpleMailboxMembership imp
         return size;
     }
 
+    /*
+     * (non-Javadoc)
+     * @see java.lang.Comparable#compareTo(java.lang.Object)
+     */
+    public int compareTo(Message<Long> other) {
+        return (int) (getUid() - other.getUid());
+    }
+    
+    
+
 }

Copied: 
james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/mail/model/AbstractMessageTest.java
 (from r1097402, 
james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/MessageRowUtilsTest.java)
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/mail/model/AbstractMessageTest.java?p2=james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/mail/model/AbstractMessageTest.java&p1=james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/MessageRowUtilsTest.java&r1=1097402&r2=1097408&rev=1097408&view=diff
==============================================================================
--- 
james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/MessageRowUtilsTest.java
 (original)
+++ 
james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/mail/model/AbstractMessageTest.java
 Thu Apr 28 10:45:55 2011
@@ -17,22 +17,22 @@
  * under the License.                                           *
  ****************************************************************/
 
-package org.apache.james.mailbox.store;
+package org.apache.james.mailbox.store.mail.model;
 
 import static org.junit.Assert.*;
 
-import org.apache.james.mailbox.store.ResultUtils;
+import org.apache.james.mailbox.store.MessageBuilder;
 import org.apache.james.mailbox.store.mail.model.Message;
 import org.junit.Test;
 
-public class MessageRowUtilsTest {    
+public class AbstractMessageTest {    
     
     @Test
     public void testShouldReturnPositiveWhenFirstGreaterThanSecond()
             throws Exception {
         Message<Long> one = buildMessage(100);
         Message<Long> two = buildMessage(99);
-        assertTrue(ResultUtils.getUidComparator().compare(one, two) > 0);
+        assertTrue( one.compareTo(two) > 0);
     }
 
     private Message<Long> buildMessage(int uid) throws Exception {
@@ -46,13 +46,13 @@ public class MessageRowUtilsTest {    
             throws Exception {
         Message<Long> one = buildMessage(98);
         Message<Long> two = buildMessage(99);
-        assertTrue(ResultUtils.getUidComparator().compare(one, two) < 0);
+        assertTrue( one.compareTo(two) < 0);
     }
 
     @Test
     public void testShouldReturnZeroWhenFirstEqualsSecond() throws Exception {
         Message<Long> one = buildMessage(90);
         Message<Long> two = buildMessage(90);
-        assertEquals(0, ResultUtils.getUidComparator().compare(one, two));
+        assertEquals(0, one.compareTo(two));
     }
 }



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to