Author: rdonkin
Date: Tue Jul 15 12:04:51 2008
New Revision: 677009

URL: http://svn.apache.org/viewvc?rev=677009&view=rev
Log:
Sort LIST results. This should ensure consistency.

Modified:
    
james/server/trunk/mailbox-library/src/main/java/org/apache/james/mailboxmanager/impl/ListResultImpl.java
    
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java

Modified: 
james/server/trunk/mailbox-library/src/main/java/org/apache/james/mailboxmanager/impl/ListResultImpl.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/mailbox-library/src/main/java/org/apache/james/mailboxmanager/impl/ListResultImpl.java?rev=677009&r1=677008&r2=677009&view=diff
==============================================================================
--- 
james/server/trunk/mailbox-library/src/main/java/org/apache/james/mailboxmanager/impl/ListResultImpl.java
 (original)
+++ 
james/server/trunk/mailbox-library/src/main/java/org/apache/james/mailboxmanager/impl/ListResultImpl.java
 Tue Jul 15 12:04:51 2008
@@ -21,7 +21,7 @@
 
 import org.apache.james.mailboxmanager.ListResult;
 
-public class ListResultImpl implements ListResult {
+public class ListResultImpl implements ListResult, Comparable {
 
     public static ListResult createNoSelect(String name, String delimiter) {
         return new ListResultImpl(name, delimiter, false, 
SELECTABILITY_FLAG_NOSELECT);
@@ -77,4 +77,53 @@
     public String toString() {
         return "ListResult: " + name;
     }
+
+    /**
+     * @see java.lang.Object#hashCode()
+     */
+    public int hashCode() {
+        final int PRIME = 31;
+        int result = 1;
+        result = PRIME * result + ((name == null) ? 0 : name.hashCode());
+        return result;
+    }
+
+    /**
+     * @see java.lang.Object#equals(java.lang.Object)
+     */
+    public boolean equals(Object obj) {
+        if (this == obj)
+            return true;
+        if (obj == null)
+            return false;
+        if (getClass() != obj.getClass())
+            return false;
+        final ListResultImpl other = (ListResultImpl) obj;
+        if (name == null) {
+            if (other.name != null)
+                return false;
+        } else if (!name.equals(other.name))
+            return false;
+        return true;
+    }
+
+    public int compareTo(Object o) {
+        final ListResultImpl other = (ListResultImpl) o;
+        final String otherName = other.getName();
+        final int result;
+        if ("INBOX".equals(this.name)) {
+            result = "INBOX".equals(otherName) ? 0 : -1;
+        } else if ("INBOX".equals(otherName)) {
+            result = 1;
+        } else if (this.name == null) {
+            result = otherName == null ? 0 : 1;
+        } else if (otherName == null){
+            result = -1;
+        } else {
+            result = name.compareTo(otherName);
+        }
+        return result;
+    }
+    
+    
 }

Modified: 
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
URL: 
http://svn.apache.org/viewvc/james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java?rev=677009&r1=677008&r2=677009&view=diff
==============================================================================
--- 
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
 (original)
+++ 
james/server/trunk/torque-mailboxmanager-function/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
 Tue Jul 15 12:04:51 2008
@@ -20,6 +20,7 @@
 package org.apache.james.mailboxmanager.torque;
 
 import java.util.ArrayList;
+import java.util.Arrays;
 import java.util.HashMap;
 import java.util.Iterator;
 import java.util.List;
@@ -244,7 +245,9 @@
                     }
                 }
             }
-            return (ListResult[]) listResults.toArray(ListResult.EMPTY_ARRAY); 
   
+            final ListResult[] results = (ListResult[]) 
listResults.toArray(ListResult.EMPTY_ARRAY);
+            Arrays.sort(results);    
+            return results;
         } catch (TorqueException e) {
             throw new MailboxManagerException(e);
         }



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to