Author: norman
Date: Thu Apr  7 19:59:42 2011
New Revision: 1089965

URL: http://svn.apache.org/viewvc?rev=1089965&view=rev
Log:
Add status responses which 100% match rfc3501. See IMAP-280

Modified:
    
james/imap/trunk/api/src/main/java/org/apache/james/imap/api/display/HumanReadableText.java
    
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java

Modified: 
james/imap/trunk/api/src/main/java/org/apache/james/imap/api/display/HumanReadableText.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/api/src/main/java/org/apache/james/imap/api/display/HumanReadableText.java?rev=1089965&r1=1089964&r2=1089965&view=diff
==============================================================================
--- 
james/imap/trunk/api/src/main/java/org/apache/james/imap/api/display/HumanReadableText.java
 (original)
+++ 
james/imap/trunk/api/src/main/java/org/apache/james/imap/api/display/HumanReadableText.java
 Thu Apr  7 19:59:42 2011
@@ -21,6 +21,8 @@ package org.apache.james.imap.api.displa
 
 import java.util.Arrays;
 
+import javax.mail.Flags;
+
 import org.apache.james.imap.api.ImapConstants;
 
 /**
@@ -34,14 +36,26 @@ public class HumanReadableText {
     public static final HumanReadableText SELECT = new HumanReadableText(
             "org.apache.james.imap.SELECT", "completed.");
 
-    public static final HumanReadableText UNSEEN = new HumanReadableText(
-            "org.apache.james.imap.UNSEEN", "");
+    public static final HumanReadableText unseen(long numberUnseen) {
+        return new HumanReadableText("org.apache.james.imap.UNSEEN","Message 
"+ numberUnseen + " is first unseen");
+    }
+    
+    public static final HumanReadableText UIDNEXT = new HumanReadableText(
+            "org.apache.james.imap.UIDNEXT", "Predicted next UID");
 
     public static final HumanReadableText UID_VALIDITY = new HumanReadableText(
-            "org.apache.james.imap.UID_VALIDITY", "");
-
-    public static final HumanReadableText PERMANENT_FLAGS = new 
HumanReadableText(
-            "org.apache.james.imap.PERMANENT_FLAGS", "");
+            "org.apache.james.imap.UID_VALIDITY", "UIDs valid");
+    
+    public static final HumanReadableText permanentFlags(Flags flags) {
+        String text;
+        if (flags.getSystemFlags() != null && flags.getSystemFlags().length > 
0) {
+            text = "Limited";
+        } else {
+            text = "No permanent flags permitted";
+        }
+        return new HumanReadableText("org.apache.james.imap.PERMANENT_FLAGS", 
text);
+    }
+   
 
     public static final HumanReadableText GENERIC_LSUB_FAILURE = new 
HumanReadableText(
             "org.apache.james.imap.GENERIC_SUBSCRIPTION_FAILURE",

Modified: 
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java?rev=1089965&r1=1089964&r2=1089965&view=diff
==============================================================================
--- 
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java
 (original)
+++ 
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java
 Thu Apr  7 19:59:42 2011
@@ -109,7 +109,7 @@ abstract class AbstractSelectionProcesso
     throws MailboxException {
         final long uid = metaData.getUidNext();
         final StatusResponse untaggedOk = statusResponseFactory.untaggedOk(
-                HumanReadableText.UNSEEN, ResponseCode.uidNext(uid));
+                HumanReadableText.UIDNEXT, ResponseCode.uidNext(uid));
         responder.respond(untaggedOk);
     }
     
@@ -134,7 +134,7 @@ abstract class AbstractSelectionProcesso
     private void permanentFlags(Responder responder, MessageManager.MetaData 
metaData) {
         final Flags permanentFlags = metaData.getPermanentFlags();
         final StatusResponse untaggedOk = statusResponseFactory.untaggedOk(
-                HumanReadableText.PERMANENT_FLAGS, ResponseCode
+                HumanReadableText.permanentFlags(permanentFlags), ResponseCode
                         .permanentFlags(permanentFlags));
         responder.respond(untaggedOk);
     }
@@ -149,7 +149,7 @@ abstract class AbstractSelectionProcesso
             if (msn == SelectedMailbox.NO_SUCH_MESSAGE) throw new 
MailboxException("No message found with uid " + unseenUid);
 
             final StatusResponse untaggedOk = statusResponseFactory.untaggedOk(
-                    HumanReadableText.UNSEEN, ResponseCode.unseen(msn));
+                    HumanReadableText.unseen(msn), ResponseCode.unseen(msn));
             responder.respond(untaggedOk);
         }
 



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

Reply via email to