Author: norman
Date: Sun May  1 14:15:46 2011
New Revision: 1098311

URL: http://svn.apache.org/viewvc?rev=1098311&view=rev
Log:
Allow to fetch mailbox metadata without the need of counting any messages

Modified:
    
james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MessageManager.java
    
james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java

Modified: 
james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MessageManager.java
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MessageManager.java?rev=1098311&r1=1098310&r2=1098311&view=diff
==============================================================================
--- 
james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MessageManager.java
 (original)
+++ 
james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MessageManager.java
 Sun May  1 14:15:46 2011
@@ -179,7 +179,7 @@ public interface MessageManager {
          * Describes the optional data types.
          */
         public enum FetchGroup {
-            NO_UNSEEN, UNSEEN_COUNT, FIRST_UNSEEN
+            NO_UNSEEN, UNSEEN_COUNT, FIRST_UNSEEN, NO_COUNT
         };
 
         /**

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=1098311&r1=1098310&r2=1098311&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
 Sun May  1 14:15:46 2011
@@ -403,21 +403,29 @@ public abstract class StoreMessageManage
         final Flags permanentFlags = getPermanentFlags(mailboxSession);
         final long uidValidity = getMailboxEntity().getUidValidity();
         final long uidNext = uidProvider.lastUid(mailboxSession, mailbox) +1;
-        final long messageCount = getMessageCount(mailboxSession);
+        final long messageCount; 
         final long unseenCount;
         final Long firstUnseen;
         switch (fetchGroup) {
             case UNSEEN_COUNT:
                 unseenCount = countUnseenMessagesInMailbox(mailboxSession);
+                messageCount = getMessageCount(mailboxSession);
                 firstUnseen = null;
                 break;
             case FIRST_UNSEEN:
                 firstUnseen = findFirstUnseenMessageUid(mailboxSession);
+                messageCount = getMessageCount(mailboxSession); 
                 unseenCount = 0;
                 break;
+            case NO_UNSEEN:
+                firstUnseen = null;
+                unseenCount = 0;
+                messageCount = getMessageCount(mailboxSession);
+                break;
             default:
                 firstUnseen = null;
                 unseenCount = 0;
+                messageCount = -1;
                 break;
         }
         return new MailboxMetaData(recent, permanentFlags, uidValidity, 
uidNext, messageCount, unseenCount, firstUnseen, isWriteable(mailboxSession));



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

Reply via email to