This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit f222fba249e2217b7c6a1cab94bad2d639884add
Author: Benoit Tellier <[email protected]>
AuthorDate: Thu Dec 12 09:03:56 2019 +0100

    [Refactoring] ImapConstants: strong typing for command names
    
    Also order them:
     - Form group by access
     - Then group main RFCs together
     - Then alphabetically order them
---
 .../org/apache/james/imap/api/ImapConstants.java   | 132 ++++++++-------------
 .../imap/decode/parser/AppendCommandParser.java    |   2 +-
 .../decode/parser/AuthenticateCommandParser.java   |   2 +-
 .../decode/parser/CapabilityCommandParser.java     |   2 +-
 .../imap/decode/parser/CheckCommandParser.java     |   2 +-
 .../imap/decode/parser/CloseCommandParser.java     |   2 +-
 .../imap/decode/parser/CopyCommandParser.java      |   2 +-
 .../imap/decode/parser/CreateCommandParser.java    |   2 +-
 .../imap/decode/parser/DeleteACLCommandParser.java |   2 +-
 .../imap/decode/parser/DeleteCommandParser.java    |   2 +-
 .../imap/decode/parser/EnableCommandParser.java    |   2 +-
 .../imap/decode/parser/ExamineCommandParser.java   |   2 +-
 .../imap/decode/parser/ExpungeCommandParser.java   |   2 +-
 .../imap/decode/parser/FetchCommandParser.java     |   2 +-
 .../imap/decode/parser/GetACLCommandParser.java    |   2 +-
 .../decode/parser/GetAnnotationCommandParser.java  |   2 +-
 .../imap/decode/parser/GetQuotaCommandParser.java  |   2 +-
 .../decode/parser/GetQuotaRootCommandParser.java   |   2 +-
 .../imap/decode/parser/IdleCommandParser.java      |   2 +-
 .../imap/decode/parser/ListCommandParser.java      |   2 +-
 .../decode/parser/ListRightsCommandParser.java     |   2 +-
 .../imap/decode/parser/LoginCommandParser.java     |   2 +-
 .../imap/decode/parser/LogoutCommandParser.java    |   2 +-
 .../imap/decode/parser/LsubCommandParser.java      |   2 +-
 .../imap/decode/parser/MoveCommandParser.java      |   2 +-
 .../imap/decode/parser/MyRightsCommandParser.java  |   2 +-
 .../imap/decode/parser/NoopCommandParser.java      |   2 +-
 .../imap/decode/parser/RenameCommandParser.java    |   2 +-
 .../imap/decode/parser/SearchCommandParser.java    |   2 +-
 .../imap/decode/parser/SelectCommandParser.java    |   2 +-
 .../imap/decode/parser/SetACLCommandParser.java    |   2 +-
 .../decode/parser/SetAnnotationCommandParser.java  |   2 +-
 .../imap/decode/parser/SetQuotaCommandParser.java  |   2 +-
 .../imap/decode/parser/StatusCommandParser.java    |   2 +-
 .../imap/decode/parser/StoreCommandParser.java     |   2 +-
 .../imap/decode/parser/SubscribeCommandParser.java |   2 +-
 .../james/imap/decode/parser/UidCommandParser.java |   2 +-
 .../imap/decode/parser/UnselectCommandParser.java  |   2 +-
 .../decode/parser/UnsubscribeCommandParser.java    |   2 +-
 .../imap/decode/parser/XListCommandParser.java     |   2 +-
 .../imap/encode/CapabilityResponseEncoder.java     |   2 +-
 .../james/imap/encode/FetchResponseEncoder.java    |   3 +-
 .../james/imap/encode/LSubResponseEncoder.java     |   2 +-
 .../james/imap/encode/ListResponseEncoder.java     |   2 +-
 .../james/imap/encode/ListingEncodingUtils.java    |   6 +-
 .../imap/encode/MailboxStatusResponseEncoder.java  |   2 +-
 .../james/imap/encode/XListResponseEncoder.java    |   2 +-
 .../imap/encode/ListingEncodingUtilsTest.java      |  21 ++--
 48 files changed, 106 insertions(+), 144 deletions(-)

diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/api/ImapConstants.java 
b/protocols/imap/src/main/java/org/apache/james/imap/api/ImapConstants.java
index d5026f1..29d2950 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/api/ImapConstants.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/api/ImapConstants.java
@@ -148,92 +148,54 @@ public interface ImapConstants {
     String STATUS_RECENT = "RECENT";
 
     String STATUS_MESSAGES = "MESSAGES";
-    
-    String STATUS_HIGHESTMODSEQ = "HIGHESTMODSEQ";
-
-    String UNSUBSCRIBE_COMMAND_NAME = "UNSUBSCRIBE";
-
-    String UID_COMMAND_NAME = "UID";
-
-    String SUBSCRIBE_COMMAND_NAME = "SUBSCRIBE";
-
-    String STORE_COMMAND_NAME = "STORE";
-
-    String STATUS_COMMAND_NAME = "STATUS";
-
-    String SELECT_COMMAND_NAME = "SELECT";
-
-    String UNSELECT_COMMAND_NAME = "UNSELECT";
-
-    String SEARCH_COMMAND_NAME = "SEARCH";
-
-    String RENAME_COMMAND_NAME = "RENAME";
-
-    String NOOP_COMMAND_NAME = "NOOP";
-
-    String IDLE_COMMAND_NAME = "IDLE";
-
-    String LSUB_COMMAND_NAME = "LSUB";
-
-    String LOGOUT_COMMAND_NAME = "LOGOUT";
-
-    String LOGIN_COMMAND_NAME = "LOGIN";
-
-    String LIST_COMMAND_NAME = "LIST";
-
-    String XLIST_COMMAND_NAME = "XLIST";
-
-    String FETCH_COMMAND_NAME = "FETCH";
-
-    String EXPUNGE_COMMAND_NAME = "EXPUNGE";
-
-    String EXAMINE_COMMAND_NAME = "EXAMINE";
-
-    String DELETE_COMMAND_NAME = "DELETE";
-
-    String CREATE_COMMAND_NAME = "CREATE";
 
-    String COPY_COMMAND_NAME = "COPY";
-
-    String MOVE_COMMAND_NAME = "MOVE";
-
-    String CLOSE_COMMAND_NAME = "CLOSE";
-
-    String CHECK_COMMAND_NAME = "CHECK";
-
-    String CAPABILITY_COMMAND_NAME = "CAPABILITY";
-
-    String AUTHENTICATE_COMMAND_NAME = "AUTHENTICATE";
-
-    String APPEND_COMMAND_NAME = "APPEND";
-    
-    String ENABLE_COMMAND_NAME = "ENABLE";
-    
-    String GETACL_COMMAND_NAME = "GETACL";
-
-    String SETACL_COMMAND_NAME = "SETACL";
-    
-    String DELETEACL_COMMAND_NAME = "DELETEACL";
-    
-    String LISTRIGHTS_COMMAND_NAME = "LISTRIGHTS";
-    
-    String MYRIGHTS_COMMAND_NAME = "MYRIGHTS";
-
-    String GETQUOTAROOT_COMMAND_NAME = "GETQUOTAROOT";
-
-    String GETQUOTA_COMMAND_NAME = "GETQUOTA";
-
-    String SETQUOTA_COMMAND_NAME = "SETQUOTA";
-
-    String SETANNOTATION_COMMAND_NAME = "SETMETADATA";
-
-    String GETANNOTATION_COMMAND_NAME = "GETMETADATA";
-
-    String LIST_RESPONSE_NAME = "LIST";
-
-    String XLIST_RESPONSE_NAME = "XLIST";
+    String STATUS_HIGHESTMODSEQ = "HIGHESTMODSEQ";
 
-    String LSUB_RESPONSE_NAME = "LSUB";
+    ImapCommand CAPABILITY_COMMAND = ImapCommand.anyStateCommand("CAPABILITY");
+    ImapCommand LOGOUT_COMMAND = ImapCommand.anyStateCommand("LOGOUT");
+    ImapCommand NOOP_COMMAND = ImapCommand.anyStateCommand("NOOP");
+
+    ImapCommand AUTHENTICATE_COMMAND = 
ImapCommand.nonAuthenticatedStateCommand("AUTHENTICATE");
+    ImapCommand LOGIN_COMMAND = 
ImapCommand.nonAuthenticatedStateCommand("LOGIN");
+
+    ImapCommand APPEND_COMMAND = 
ImapCommand.authenticatedStateCommand("APPEND");
+    ImapCommand CREATE_COMMAND = 
ImapCommand.authenticatedStateCommand("CREATE");
+    ImapCommand DELETE_COMMAND = 
ImapCommand.authenticatedStateCommand("DELETE");
+    ImapCommand ENABLE_COMMAND = 
ImapCommand.authenticatedStateCommand("ENABLE");
+    ImapCommand EXAMINE_COMMAND = 
ImapCommand.authenticatedStateCommand("EXAMINE");
+    ImapCommand IDLE_COMMAND = ImapCommand.authenticatedStateCommand("IDLE");
+    ImapCommand LIST_COMMAND = ImapCommand.authenticatedStateCommand("LIST");
+    ImapCommand LSUB_COMMAND = ImapCommand.authenticatedStateCommand("LSUB");
+    ImapCommand RENAME_COMMAND = 
ImapCommand.authenticatedStateCommand("RENAME");
+    ImapCommand SELECT_COMMAND = 
ImapCommand.authenticatedStateCommand("SELECT");
+    ImapCommand STATUS_COMMAND = 
ImapCommand.authenticatedStateCommand("STATUS");
+    ImapCommand SUBSCRIBE_COMMAND = 
ImapCommand.authenticatedStateCommand("SUBSCRIBE");
+    ImapCommand UNSELECT_COMMAND = 
ImapCommand.authenticatedStateCommand("UNSELECT");
+    ImapCommand UNSUBSCRIBE_COMMAND = 
ImapCommand.authenticatedStateCommand("UNSUBSCRIBE");
+    ImapCommand XLIST_COMMAND = ImapCommand.authenticatedStateCommand("XLIST");
+    // RFC-4314 IMAP ACL
+    ImapCommand DELETEACL_COMMAND = 
ImapCommand.authenticatedStateCommand("DELETEACL");
+    ImapCommand LISTRIGHTS_COMMAND = 
ImapCommand.authenticatedStateCommand("LISTRIGHTS");
+    ImapCommand MYRIGHTS_COMMAND = 
ImapCommand.authenticatedStateCommand("MYRIGHTS");
+    ImapCommand GETACL_COMMAND = 
ImapCommand.authenticatedStateCommand("GETACL");
+    ImapCommand SETACL_COMMAND = 
ImapCommand.authenticatedStateCommand("SETACL");
+    // RFC-2087 IMAP Quota
+    ImapCommand GETQUOTA_COMMAND = 
ImapCommand.authenticatedStateCommand("GETQUOTA");
+    ImapCommand GETQUOTAROOT_COMMAND = 
ImapCommand.authenticatedStateCommand("GETQUOTAROOT");
+    ImapCommand SETQUOTA_COMMAND = 
ImapCommand.authenticatedStateCommand("SETQUOTA");
+    // RFC-5464 IMAP Metadata (mailbox annotations)
+    ImapCommand GETANNOTATION_COMMAND = 
ImapCommand.authenticatedStateCommand("GETMETADATA");
+    ImapCommand SETANNOTATION_COMMAND = 
ImapCommand.authenticatedStateCommand("SETMETADATA");
+
+    ImapCommand CHECK_COMMAND = ImapCommand.selectedStateCommand("CHECK");
+    ImapCommand CLOSE_COMMAND = ImapCommand.selectedStateCommand("CLOSE");
+    ImapCommand COPY_COMMAND = ImapCommand.selectedStateCommand("COPY");
+    ImapCommand EXPUNGE_COMMAND = ImapCommand.selectedStateCommand("EXPUNGE");
+    ImapCommand FETCH_COMMAND = ImapCommand.selectedStateCommand("FETCH");
+    ImapCommand MOVE_COMMAND = ImapCommand.selectedStateCommand("MOVE");
+    ImapCommand SEARCH_COMMAND = ImapCommand.selectedStateCommand("SEARCH");
+    ImapCommand STORE_COMMAND = ImapCommand.selectedStateCommand("STORE");
+    ImapCommand UID_COMMAND = ImapCommand.selectedStateCommand("UID");
 
     String SEARCH_RESPONSE_NAME = "SEARCH";
 
@@ -244,7 +206,7 @@ public interface ImapConstants {
     String QUOTAROOT_RESPONSE_NAME = "QUOTAROOT";
 
     String LISTRIGHTS_RESPONSE_NAME = "LISTRIGHTS";
-    
+
     String MYRIGHTS_RESPONSE_NAME = "MYRIGHTS";
 
     String ANNOTATION_RESPONSE_NAME = "METADATA";
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/AppendCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/AppendCommandParser.java
index bbf8ffc..fa50df7 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/AppendCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/AppendCommandParser.java
@@ -41,7 +41,7 @@ import org.apache.james.imap.message.request.AppendRequest;
 public class AppendCommandParser extends AbstractImapCommandParser {
 
     public AppendCommandParser(StatusResponseFactory statusResponseFactory) {
-        
super(ImapCommand.authenticatedStateCommand(ImapConstants.APPEND_COMMAND_NAME), 
statusResponseFactory);
+        super(ImapConstants.APPEND_COMMAND, statusResponseFactory);
     }
 
     /**
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/AuthenticateCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/AuthenticateCommandParser.java
index 3985c75..710a8d7 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/AuthenticateCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/AuthenticateCommandParser.java
@@ -36,7 +36,7 @@ import 
org.apache.james.imap.message.request.IRAuthenticateRequest;
 public class AuthenticateCommandParser extends AbstractImapCommandParser {
 
     public AuthenticateCommandParser(StatusResponseFactory 
statusResponseFactory) {
-        
super(ImapCommand.nonAuthenticatedStateCommand(ImapConstants.AUTHENTICATE_COMMAND_NAME),
 statusResponseFactory);
+        super(ImapConstants.AUTHENTICATE_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CapabilityCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CapabilityCommandParser.java
index 1e0d820..d79856f 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CapabilityCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CapabilityCommandParser.java
@@ -35,7 +35,7 @@ import 
org.apache.james.imap.message.request.CapabilityRequest;
 public class CapabilityCommandParser extends AbstractImapCommandParser {
 
     public CapabilityCommandParser(StatusResponseFactory 
statusResponseFactory) {
-        
super(ImapCommand.anyStateCommand(ImapConstants.CAPABILITY_COMMAND_NAME), 
statusResponseFactory);
+        super(ImapConstants.CAPABILITY_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CheckCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CheckCommandParser.java
index 81b8b44..73445f0 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CheckCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CheckCommandParser.java
@@ -35,7 +35,7 @@ import org.apache.james.imap.message.request.CheckRequest;
 public class CheckCommandParser extends AbstractImapCommandParser {
 
     public CheckCommandParser(StatusResponseFactory statusResponseFactory) {
-        
super(ImapCommand.selectedStateCommand(ImapConstants.CHECK_COMMAND_NAME), 
statusResponseFactory);
+        super(ImapConstants.CHECK_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CloseCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CloseCommandParser.java
index 3246a53..027e432 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CloseCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CloseCommandParser.java
@@ -35,7 +35,7 @@ import org.apache.james.imap.message.request.CloseRequest;
 class CloseCommandParser extends AbstractImapCommandParser {
 
     public CloseCommandParser(StatusResponseFactory statusResponseFactory) {
-        
super(ImapCommand.selectedStateCommand(ImapConstants.CLOSE_COMMAND_NAME), 
statusResponseFactory);
+        super(ImapConstants.CLOSE_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CopyCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CopyCommandParser.java
index c84e0a8..db1c463 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CopyCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CopyCommandParser.java
@@ -31,7 +31,7 @@ import org.apache.james.imap.message.request.CopyRequest;
 public class CopyCommandParser extends AbstractMessageRangeCommandParser {
 
     public CopyCommandParser(StatusResponseFactory statusResponseFactory) {
-        
super(ImapCommand.selectedStateCommand(ImapConstants.COPY_COMMAND_NAME), 
statusResponseFactory);
+        super(ImapConstants.COPY_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CreateCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CreateCommandParser.java
index 894fc81..410d384 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CreateCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/CreateCommandParser.java
@@ -40,7 +40,7 @@ import com.google.common.base.Strings;
 public class CreateCommandParser extends AbstractImapCommandParser {
 
     public CreateCommandParser(StatusResponseFactory statusResponseFactory) {
-        
super(ImapCommand.authenticatedStateCommand(ImapConstants.CREATE_COMMAND_NAME), 
statusResponseFactory);
+        super(ImapConstants.CREATE_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/DeleteACLCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/DeleteACLCommandParser.java
index f7d16d1..37c9c51 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/DeleteACLCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/DeleteACLCommandParser.java
@@ -36,7 +36,7 @@ import org.apache.james.imap.message.request.DeleteACLRequest;
 public class DeleteACLCommandParser extends AbstractImapCommandParser {
 
     public DeleteACLCommandParser(StatusResponseFactory statusResponseFactory) 
{
-        
super(ImapCommand.authenticatedStateCommand(ImapConstants.DELETEACL_COMMAND_NAME),
 statusResponseFactory);
+        super(ImapConstants.DELETEACL_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/DeleteCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/DeleteCommandParser.java
index 6fc1a64..62c39c7 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/DeleteCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/DeleteCommandParser.java
@@ -35,7 +35,7 @@ import org.apache.james.imap.message.request.DeleteRequest;
 public class DeleteCommandParser extends AbstractImapCommandParser {
 
     public DeleteCommandParser(StatusResponseFactory statusResponseFactory) {
-        
super(ImapCommand.authenticatedStateCommand(ImapConstants.DELETE_COMMAND_NAME), 
statusResponseFactory);
+        super(ImapConstants.DELETE_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/EnableCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/EnableCommandParser.java
index 555a0b7..9efef2a 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/EnableCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/EnableCommandParser.java
@@ -36,7 +36,7 @@ import org.apache.james.imap.message.request.EnableRequest;
 public class EnableCommandParser extends AbstractImapCommandParser {
     
     public EnableCommandParser(StatusResponseFactory statusResponseFactory) {
-        
super(ImapCommand.authenticatedStateCommand(ImapConstants.ENABLE_COMMAND_NAME), 
statusResponseFactory);
+        super(ImapConstants.ENABLE_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/ExamineCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/ExamineCommandParser.java
index 7bd0809..10dc958 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/ExamineCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/ExamineCommandParser.java
@@ -33,7 +33,7 @@ import org.apache.james.imap.message.request.ExamineRequest;
 public class ExamineCommandParser extends AbstractSelectionCommandParser {
 
     public ExamineCommandParser(StatusResponseFactory statusResponseFactory) {
-        
super(ImapCommand.authenticatedStateCommand(ImapConstants.EXAMINE_COMMAND_NAME),
 statusResponseFactory);
+        super(ImapConstants.EXAMINE_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/ExpungeCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/ExpungeCommandParser.java
index 3d7f70d..067e898 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/ExpungeCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/ExpungeCommandParser.java
@@ -35,7 +35,7 @@ import org.apache.james.imap.message.request.ExpungeRequest;
 public class ExpungeCommandParser extends AbstractUidCommandParser {
 
     public ExpungeCommandParser(StatusResponseFactory statusResponseFactory) {
-        
super(ImapCommand.selectedStateCommand(ImapConstants.EXPUNGE_COMMAND_NAME), 
statusResponseFactory);
+        super(ImapConstants.EXPUNGE_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/FetchCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/FetchCommandParser.java
index 4d5b616..c683f02 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/FetchCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/FetchCommandParser.java
@@ -54,7 +54,7 @@ public class FetchCommandParser extends 
AbstractUidCommandParser {
     private static final byte[] VANISHED = "VANISHED".getBytes();
 
     public FetchCommandParser(StatusResponseFactory statusResponseFactory) {
-        
super(ImapCommand.selectedStateCommand(ImapConstants.FETCH_COMMAND_NAME), 
statusResponseFactory);
+        super(ImapConstants.FETCH_COMMAND, statusResponseFactory);
     }
 
     /**
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/GetACLCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/GetACLCommandParser.java
index cc698c0..a7dab53 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/GetACLCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/GetACLCommandParser.java
@@ -36,7 +36,7 @@ import org.apache.james.imap.message.request.GetACLRequest;
 public class GetACLCommandParser extends AbstractImapCommandParser {
 
     public GetACLCommandParser(StatusResponseFactory statusResponseFactory) {
-        
super(ImapCommand.authenticatedStateCommand(ImapConstants.GETACL_COMMAND_NAME), 
statusResponseFactory);
+        super(ImapConstants.GETACL_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/GetAnnotationCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/GetAnnotationCommandParser.java
index afda91d..031f8c6 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/GetAnnotationCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/GetAnnotationCommandParser.java
@@ -46,7 +46,7 @@ public class GetAnnotationCommandParser extends 
AbstractImapCommandParser {
     private static final boolean STOP_ON_PAREN = true;
 
     public GetAnnotationCommandParser(StatusResponseFactory 
statusResponseFactory) {
-        
super(ImapCommand.authenticatedStateCommand(ImapConstants.GETANNOTATION_COMMAND_NAME),
 statusResponseFactory);
+        super(ImapConstants.GETANNOTATION_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/GetQuotaCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/GetQuotaCommandParser.java
index a7717e7..6a154d9 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/GetQuotaCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/GetQuotaCommandParser.java
@@ -35,7 +35,7 @@ import org.apache.james.imap.message.request.GetQuotaRequest;
  */
 public class GetQuotaCommandParser extends AbstractImapCommandParser {
     public GetQuotaCommandParser(StatusResponseFactory statusResponseFactory) {
-        
super(ImapCommand.authenticatedStateCommand(ImapConstants.GETQUOTA_COMMAND_NAME),
 statusResponseFactory);
+        super(ImapConstants.GETQUOTA_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/GetQuotaRootCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/GetQuotaRootCommandParser.java
index 2f4d276..015382b 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/GetQuotaRootCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/GetQuotaRootCommandParser.java
@@ -36,7 +36,7 @@ import 
org.apache.james.imap.message.request.GetQuotaRootRequest;
 public class GetQuotaRootCommandParser extends AbstractImapCommandParser {
 
     public GetQuotaRootCommandParser(StatusResponseFactory 
statusResponseFactory) {
-        
super(ImapCommand.authenticatedStateCommand(ImapConstants.GETQUOTAROOT_COMMAND_NAME),
 statusResponseFactory);
+        super(ImapConstants.GETQUOTAROOT_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/IdleCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/IdleCommandParser.java
index 1b6835f..2be9e85 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/IdleCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/IdleCommandParser.java
@@ -35,7 +35,7 @@ import org.apache.james.imap.message.request.IdleRequest;
 public class IdleCommandParser extends AbstractImapCommandParser {
 
     public IdleCommandParser(StatusResponseFactory statusResponseFactory) {
-        
super(ImapCommand.authenticatedStateCommand(ImapConstants.IDLE_COMMAND_NAME), 
statusResponseFactory);
+        super(ImapConstants.IDLE_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/ListCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/ListCommandParser.java
index 8cad84f..0648a74 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/ListCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/ListCommandParser.java
@@ -35,7 +35,7 @@ import org.apache.james.imap.message.request.ListRequest;
 public class ListCommandParser extends AbstractUidCommandParser {
 
     public ListCommandParser(StatusResponseFactory statusResponseFactory) {
-        
super(ImapCommand.authenticatedStateCommand(ImapConstants.LIST_COMMAND_NAME), 
statusResponseFactory);
+        super(ImapConstants.LIST_COMMAND, statusResponseFactory);
     }
 
     protected ListCommandParser(ImapCommand command, StatusResponseFactory 
statusResponseFactory) {
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/ListRightsCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/ListRightsCommandParser.java
index 584d9eb..e4f78e1 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/ListRightsCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/ListRightsCommandParser.java
@@ -36,7 +36,7 @@ import 
org.apache.james.imap.message.request.ListRightsRequest;
 public class ListRightsCommandParser extends AbstractImapCommandParser {
 
     public ListRightsCommandParser(StatusResponseFactory 
statusResponseFactory) {
-        
super(ImapCommand.authenticatedStateCommand(ImapConstants.LISTRIGHTS_COMMAND_NAME),
 statusResponseFactory);
+        super(ImapConstants.LISTRIGHTS_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/LoginCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/LoginCommandParser.java
index e974f8f..9462c70 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/LoginCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/LoginCommandParser.java
@@ -36,7 +36,7 @@ import org.apache.james.imap.message.request.LoginRequest;
 public class LoginCommandParser extends AbstractImapCommandParser {
 
     public LoginCommandParser(StatusResponseFactory statusResponseFactory) {
-        
super(ImapCommand.nonAuthenticatedStateCommand(ImapConstants.LOGIN_COMMAND_NAME),
 statusResponseFactory);
+        super(ImapConstants.LOGIN_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/LogoutCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/LogoutCommandParser.java
index 12db4de..dbbaec5 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/LogoutCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/LogoutCommandParser.java
@@ -35,7 +35,7 @@ import org.apache.james.imap.message.request.LogoutRequest;
 public class LogoutCommandParser extends AbstractImapCommandParser {
 
     public LogoutCommandParser(StatusResponseFactory statusResponseFactory) {
-        super(ImapCommand.anyStateCommand(ImapConstants.LOGOUT_COMMAND_NAME), 
statusResponseFactory);
+        super(ImapConstants.LOGOUT_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/LsubCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/LsubCommandParser.java
index a3dd8fc..8ae1fe9 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/LsubCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/LsubCommandParser.java
@@ -31,7 +31,7 @@ import org.apache.james.imap.message.request.LsubRequest;
 public class LsubCommandParser extends ListCommandParser {
 
     public LsubCommandParser(StatusResponseFactory statusResponseFactory) {
-        
super(ImapCommand.authenticatedStateCommand(ImapConstants.LSUB_COMMAND_NAME), 
statusResponseFactory);
+        super(ImapConstants.LSUB_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/MoveCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/MoveCommandParser.java
index 2ddc766..93228f3 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/MoveCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/MoveCommandParser.java
@@ -13,7 +13,7 @@ import org.apache.james.imap.message.request.MoveRequest;
 public class MoveCommandParser extends AbstractMessageRangeCommandParser {
 
     public MoveCommandParser(StatusResponseFactory statusResponseFactory) {
-        
super(ImapCommand.selectedStateCommand(ImapConstants.MOVE_COMMAND_NAME), 
statusResponseFactory);
+        super(ImapConstants.MOVE_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/MyRightsCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/MyRightsCommandParser.java
index e74119c..584a006 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/MyRightsCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/MyRightsCommandParser.java
@@ -36,7 +36,7 @@ import org.apache.james.imap.message.request.MyRightsRequest;
 public class MyRightsCommandParser extends AbstractImapCommandParser {
 
     public MyRightsCommandParser(StatusResponseFactory statusResponseFactory) {
-        
super(ImapCommand.authenticatedStateCommand(ImapConstants.MYRIGHTS_COMMAND_NAME),
 statusResponseFactory);
+        super(ImapConstants.MYRIGHTS_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/NoopCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/NoopCommandParser.java
index ee3352a..b0eba28 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/NoopCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/NoopCommandParser.java
@@ -35,7 +35,7 @@ import org.apache.james.imap.message.request.NoopRequest;
 public class NoopCommandParser extends AbstractImapCommandParser {
 
     public NoopCommandParser(StatusResponseFactory statusResponseFactory) {
-        super(ImapCommand.anyStateCommand(ImapConstants.NOOP_COMMAND_NAME), 
statusResponseFactory);
+        super(ImapConstants.NOOP_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/RenameCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/RenameCommandParser.java
index 9cee81f..bc40f93 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/RenameCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/RenameCommandParser.java
@@ -35,7 +35,7 @@ import org.apache.james.imap.message.request.RenameRequest;
 public class RenameCommandParser extends AbstractImapCommandParser {
 
     public RenameCommandParser(StatusResponseFactory statusResponseFactory) {
-        
super(ImapCommand.authenticatedStateCommand(ImapConstants.RENAME_COMMAND_NAME), 
statusResponseFactory);
+        super(ImapConstants.RENAME_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SearchCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SearchCommandParser.java
index b25a57d..79824d4 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SearchCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SearchCommandParser.java
@@ -53,7 +53,7 @@ public class SearchCommandParser extends 
AbstractUidCommandParser {
     private static final Logger LOGGER = 
LoggerFactory.getLogger(SearchCommandParser.class);
 
     public SearchCommandParser(StatusResponseFactory statusResponseFactory) {
-        
super(ImapCommand.selectedStateCommand(ImapConstants.SEARCH_COMMAND_NAME), 
statusResponseFactory);
+        super(ImapConstants.SEARCH_COMMAND, statusResponseFactory);
     }
 
     /**
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SelectCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SelectCommandParser.java
index 2309bbe..cb38294 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SelectCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SelectCommandParser.java
@@ -32,7 +32,7 @@ import org.apache.james.imap.message.request.SelectRequest;
  */
 public class SelectCommandParser extends AbstractSelectionCommandParser {
     public SelectCommandParser(StatusResponseFactory statusResponseFactory) {
-        
super(ImapCommand.authenticatedStateCommand(ImapConstants.SELECT_COMMAND_NAME), 
statusResponseFactory);
+        super(ImapConstants.SELECT_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SetACLCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SetACLCommandParser.java
index 4a96992..4a967d6 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SetACLCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SetACLCommandParser.java
@@ -36,7 +36,7 @@ import org.apache.james.imap.message.request.SetACLRequest;
 public class SetACLCommandParser extends AbstractImapCommandParser {
 
     public SetACLCommandParser(StatusResponseFactory statusResponseFactory) {
-        
super(ImapCommand.authenticatedStateCommand(ImapConstants.SETACL_COMMAND_NAME), 
statusResponseFactory);
+        super(ImapConstants.SETACL_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SetAnnotationCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SetAnnotationCommandParser.java
index f650a72..ee34dc6 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SetAnnotationCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SetAnnotationCommandParser.java
@@ -40,7 +40,7 @@ import com.google.common.collect.ImmutableList;
 
 public class SetAnnotationCommandParser extends AbstractImapCommandParser {
     public SetAnnotationCommandParser(StatusResponseFactory 
statusResponseFactory) {
-        
super(ImapCommand.authenticatedStateCommand(ImapConstants.SETANNOTATION_COMMAND_NAME),
 statusResponseFactory);
+        super(ImapConstants.SETANNOTATION_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SetQuotaCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SetQuotaCommandParser.java
index fdbb092..ced2ca0 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SetQuotaCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SetQuotaCommandParser.java
@@ -36,7 +36,7 @@ import org.apache.james.imap.message.request.SetQuotaRequest;
 public class SetQuotaCommandParser extends AbstractImapCommandParser {
 
     public SetQuotaCommandParser(StatusResponseFactory statusResponseFactory) {
-        
super(ImapCommand.authenticatedStateCommand(ImapConstants.SETQUOTA_COMMAND_NAME),
 statusResponseFactory);
+        super(ImapConstants.SETQUOTA_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/StatusCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/StatusCommandParser.java
index 3c809e0..33e81c1 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/StatusCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/StatusCommandParser.java
@@ -44,7 +44,7 @@ public class StatusCommandParser extends 
AbstractImapCommandParser {
     private static final ImapRequestLineReader.NoopCharValidator 
NOOP_CHAR_VALIDATOR = new ImapRequestLineReader.NoopCharValidator();
 
     public StatusCommandParser(StatusResponseFactory statusResponseFactory) {
-        
super(ImapCommand.authenticatedStateCommand(ImapConstants.STATUS_COMMAND_NAME), 
statusResponseFactory);
+        super(ImapConstants.STATUS_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/StoreCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/StoreCommandParser.java
index ddf3bbc..a2369fd 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/StoreCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/StoreCommandParser.java
@@ -42,7 +42,7 @@ public class StoreCommandParser extends 
AbstractUidCommandParser {
     private static final byte[] UNCHANGEDSINCE = "UNCHANGEDSINCE".getBytes();
     
     public StoreCommandParser(StatusResponseFactory statusResponseFactory) {
-        
super(ImapCommand.selectedStateCommand(ImapConstants.STORE_COMMAND_NAME), 
statusResponseFactory);
+        super(ImapConstants.STORE_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SubscribeCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SubscribeCommandParser.java
index 2f9669a..ae092b6 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SubscribeCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/SubscribeCommandParser.java
@@ -35,7 +35,7 @@ import org.apache.james.imap.message.request.SubscribeRequest;
 public class SubscribeCommandParser extends AbstractImapCommandParser {
 
     public SubscribeCommandParser(StatusResponseFactory statusResponseFactory) 
{
-        
super(ImapCommand.authenticatedStateCommand(ImapConstants.SUBSCRIBE_COMMAND_NAME),
 statusResponseFactory);
+        super(ImapConstants.SUBSCRIBE_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/UidCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/UidCommandParser.java
index b94e15f..4fc0e3a 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/UidCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/UidCommandParser.java
@@ -42,7 +42,7 @@ public class UidCommandParser extends 
AbstractImapCommandParser {
     private final ImapCommandParserFactory parserFactory;
 
     public UidCommandParser(ImapCommandParserFactory parserFactory, 
StatusResponseFactory statusResponseFactory) {
-        
super(ImapCommand.selectedStateCommand(ImapConstants.UID_COMMAND_NAME), 
statusResponseFactory);
+        super(ImapConstants.UID_COMMAND, statusResponseFactory);
         this.parserFactory = parserFactory;
     }
 
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/UnselectCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/UnselectCommandParser.java
index 452ee7a..10c1daa 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/UnselectCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/UnselectCommandParser.java
@@ -40,7 +40,7 @@ public class UnselectCommandParser extends 
AbstractImapCommandParser {
         // from the RFC it seems like the command should be valid in any state.
         // At least kind of, as we will return a "BAD" response if no mailbox 
is
         // currently selected in the UnselectProcessor
-        
super(ImapCommand.authenticatedStateCommand(ImapConstants.UNSELECT_COMMAND_NAME),
 statusResponseFactory);
+        super(ImapConstants.UNSELECT_COMMAND, statusResponseFactory);
 
     }
 
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/UnsubscribeCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/UnsubscribeCommandParser.java
index 487c96f..c1930db 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/UnsubscribeCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/UnsubscribeCommandParser.java
@@ -35,7 +35,7 @@ import 
org.apache.james.imap.message.request.UnsubscribeRequest;
 public class UnsubscribeCommandParser extends AbstractImapCommandParser {
 
     public UnsubscribeCommandParser(StatusResponseFactory 
statusResponseFactory) {
-        
super(ImapCommand.authenticatedStateCommand(ImapConstants.UNSUBSCRIBE_COMMAND_NAME),
 statusResponseFactory);
+        super(ImapConstants.UNSUBSCRIBE_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/XListCommandParser.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/XListCommandParser.java
index 861792b..6c5e7eb 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/XListCommandParser.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/decode/parser/XListCommandParser.java
@@ -31,7 +31,7 @@ import org.apache.james.imap.message.request.XListRequest;
 public class XListCommandParser extends ListCommandParser {
 
     public XListCommandParser(StatusResponseFactory statusResponseFactory) {
-        
super(ImapCommand.authenticatedStateCommand(ImapConstants.XLIST_COMMAND_NAME), 
statusResponseFactory);
+        super(ImapConstants.XLIST_COMMAND, statusResponseFactory);
     }
 
     @Override
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/encode/CapabilityResponseEncoder.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/encode/CapabilityResponseEncoder.java
index caabae1..9e96ffe 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/encode/CapabilityResponseEncoder.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/encode/CapabilityResponseEncoder.java
@@ -40,7 +40,7 @@ public class CapabilityResponseEncoder implements 
ImapResponseEncoder<Capability
     public void encode(CapabilityResponse response, ImapResponseComposer 
composer) throws IOException {
         Iterator<Capability> capabilities = 
response.getCapabilities().iterator();
         composer.untagged();
-        composer.message(ImapConstants.CAPABILITY_COMMAND_NAME);
+        composer.message(ImapConstants.CAPABILITY_COMMAND.getName());
         while (capabilities.hasNext()) {
             composer.message(capabilities.next().asString());
         }
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/encode/FetchResponseEncoder.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/encode/FetchResponseEncoder.java
index 8cc21ce..2849cda 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/encode/FetchResponseEncoder.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/encode/FetchResponseEncoder.java
@@ -65,8 +65,7 @@ public class FetchResponseEncoder implements 
ImapResponseEncoder<FetchResponse>
     public void encode(FetchResponse fetchResponse, ImapResponseComposer 
composer) throws IOException {
         long messageNumber = fetchResponse.getMessageNumber();
 
-        
composer.untagged().message(messageNumber).message(ImapConstants.FETCH_COMMAND_NAME).openParen();
-
+        
composer.untagged().message(messageNumber).message(ImapConstants.FETCH_COMMAND.getName()).openParen();
 
         encodeModSeq(composer, fetchResponse);
         encodeFlags(composer, fetchResponse);
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/encode/LSubResponseEncoder.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/encode/LSubResponseEncoder.java
index 4624d25..52c79c9 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/encode/LSubResponseEncoder.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/encode/LSubResponseEncoder.java
@@ -34,6 +34,6 @@ public class LSubResponseEncoder implements 
ImapResponseEncoder<LSubResponse> {
 
     @Override
     public void encode(LSubResponse response, ImapResponseComposer composer) 
throws IOException {
-        
ListingEncodingUtils.encodeListingResponse(ImapConstants.LSUB_RESPONSE_NAME, 
composer, response);
+        ListingEncodingUtils.encodeListingResponse(ImapConstants.LSUB_COMMAND, 
composer, response);
     }
 }
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/encode/ListResponseEncoder.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/encode/ListResponseEncoder.java
index a146bca..33e76db 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/encode/ListResponseEncoder.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/encode/ListResponseEncoder.java
@@ -34,6 +34,6 @@ public class ListResponseEncoder implements 
ImapResponseEncoder<ListResponse> {
 
     @Override
     public void encode(ListResponse response, ImapResponseComposer composer) 
throws IOException {
-        
ListingEncodingUtils.encodeListingResponse(ImapConstants.LIST_RESPONSE_NAME, 
composer, response);
+        ListingEncodingUtils.encodeListingResponse(ImapConstants.LIST_COMMAND, 
composer, response);
     }
 }
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/encode/ListingEncodingUtils.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/encode/ListingEncodingUtils.java
index 9e9efdc..5377bc2 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/encode/ListingEncodingUtils.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/encode/ListingEncodingUtils.java
@@ -22,6 +22,7 @@ package org.apache.james.imap.encode;
 import java.io.IOException;
 import java.util.List;
 
+import org.apache.james.imap.api.ImapCommand;
 import org.apache.james.imap.api.ImapConstants;
 import org.apache.james.imap.api.process.MailboxType;
 import org.apache.james.imap.message.response.AbstractListingResponse;
@@ -31,10 +32,9 @@ import com.google.common.collect.ImmutableList;
 
 public class ListingEncodingUtils {
 
-    public static void encodeListingResponse(String responseTypeName, 
ImapResponseComposer composer, AbstractListingResponse response) throws 
IOException {
-
+    public static void encodeListingResponse(ImapCommand command, 
ImapResponseComposer composer, AbstractListingResponse response) throws 
IOException {
         composer.untagged();
-        composer.message(responseTypeName);
+        composer.message(command.getName());
         composer.openParen();
         for (String attribute : getNameAttributes(response)) {
             composer.message(attribute);
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/encode/MailboxStatusResponseEncoder.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/encode/MailboxStatusResponseEncoder.java
index 68aee4d..2f64f67 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/encode/MailboxStatusResponseEncoder.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/encode/MailboxStatusResponseEncoder.java
@@ -46,7 +46,7 @@ public class MailboxStatusResponseEncoder implements 
ImapConstants, ImapResponse
         String mailboxName = response.getMailbox();
 
         composer.untagged();
-        composer.message(STATUS_COMMAND_NAME);
+        composer.message(STATUS_COMMAND.getName());
         composer.quote(mailboxName);
         composer.openParen();
 
diff --git 
a/protocols/imap/src/main/java/org/apache/james/imap/encode/XListResponseEncoder.java
 
b/protocols/imap/src/main/java/org/apache/james/imap/encode/XListResponseEncoder.java
index 93879da..2efd2d4 100644
--- 
a/protocols/imap/src/main/java/org/apache/james/imap/encode/XListResponseEncoder.java
+++ 
b/protocols/imap/src/main/java/org/apache/james/imap/encode/XListResponseEncoder.java
@@ -31,6 +31,6 @@ public class XListResponseEncoder implements 
ImapResponseEncoder<XListResponse>
 
     @Override
     public void encode(XListResponse message, ImapResponseComposer composer) 
throws IOException {
-        
ListingEncodingUtils.encodeListingResponse(ImapConstants.XLIST_RESPONSE_NAME, 
composer, message);
+        
ListingEncodingUtils.encodeListingResponse(ImapConstants.XLIST_COMMAND, 
composer, message);
     }
 }
diff --git 
a/protocols/imap/src/test/java/org/apache/james/imap/encode/ListingEncodingUtilsTest.java
 
b/protocols/imap/src/test/java/org/apache/james/imap/encode/ListingEncodingUtilsTest.java
index d6a5d72..0cb4496 100644
--- 
a/protocols/imap/src/test/java/org/apache/james/imap/encode/ListingEncodingUtilsTest.java
+++ 
b/protocols/imap/src/test/java/org/apache/james/imap/encode/ListingEncodingUtilsTest.java
@@ -18,6 +18,8 @@
  ****************************************************************/
 package org.apache.james.imap.encode;
 
+import static org.apache.james.imap.api.ImapConstants.LIST_COMMAND;
+import static org.apache.james.imap.api.ImapConstants.XLIST_COMMAND;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import org.apache.james.imap.api.process.MailboxType;
@@ -33,7 +35,6 @@ import org.junit.Test;
 public class ListingEncodingUtilsTest  {
 
     final String nameParameter = "mailbox";
-    final String typeNameParameters = "LIST";
     
     private ByteImapResponseWriter writer = new ByteImapResponseWriter();
     private ImapResponseComposer composer = new 
ImapResponseComposerImpl(writer);
@@ -42,7 +43,7 @@ public class ListingEncodingUtilsTest  {
     public void encodeShouldWriteNilDelimiterWhenUnassigned() throws Exception 
{
         ListResponse input = new ListResponse(Children.HAS_CHILDREN, 
Selectability.NONE, nameParameter, ((char) Character.UNASSIGNED));
 
-        ListingEncodingUtils.encodeListingResponse(typeNameParameters, 
composer, input);
+        ListingEncodingUtils.encodeListingResponse(LIST_COMMAND, composer, 
input);
         assertThat(writer.getString()).isEqualTo("* LIST (\\HasChildren) NIL 
\"mailbox\"\r\n");
     }
 
@@ -50,7 +51,7 @@ public class ListingEncodingUtilsTest  {
     public void encodeShouldWriteAnyDelimiter() throws Exception {
         ListResponse input = new ListResponse(Children.HAS_CHILDREN, 
Selectability.NONE, nameParameter, '#');
 
-        ListingEncodingUtils.encodeListingResponse(typeNameParameters, 
composer, input);
+        ListingEncodingUtils.encodeListingResponse(LIST_COMMAND, composer, 
input);
         assertThat(writer.getString()).isEqualTo("* LIST (\\HasChildren) \"#\" 
\"mailbox\"\r\n");
     }
 
@@ -58,7 +59,7 @@ public class ListingEncodingUtilsTest  {
     public void encodeShouldNotIncludeAttributeWhenNone() throws Exception {
         ListResponse input = new 
ListResponse(Children.CHILDREN_ALLOWED_BUT_UNKNOWN, 
MailboxMetaData.Selectability.NONE, nameParameter, '.');
 
-        ListingEncodingUtils.encodeListingResponse(typeNameParameters, 
composer, input);
+        ListingEncodingUtils.encodeListingResponse(LIST_COMMAND, composer, 
input);
         assertThat(writer.getString()).isEqualTo("* LIST () \".\" 
\"mailbox\"\r\n");
     }
 
@@ -66,7 +67,7 @@ public class ListingEncodingUtilsTest  {
     public void encodeShouldAddHasChildrenToAttributes() throws Exception {
         ListResponse input = new ListResponse(Children.HAS_CHILDREN, 
Selectability.NONE, nameParameter, '.');
             
-        ListingEncodingUtils.encodeListingResponse(typeNameParameters, 
composer, input);
+        ListingEncodingUtils.encodeListingResponse(LIST_COMMAND, composer, 
input);
         assertThat(writer.getString()).isEqualTo("* LIST (\\HasChildren) \".\" 
\"mailbox\"\r\n");
     }
     
@@ -74,7 +75,7 @@ public class ListingEncodingUtilsTest  {
     public void encodeShouldAddHasNoChildrenToAttributes() throws Exception {
         ListResponse input = new ListResponse(Children.HAS_NO_CHILDREN, 
Selectability.NONE, nameParameter, '.');
             
-        ListingEncodingUtils.encodeListingResponse(typeNameParameters, 
composer, input);
+        ListingEncodingUtils.encodeListingResponse(LIST_COMMAND, composer, 
input);
         assertThat(writer.getString()).isEqualTo("* LIST (\\HasNoChildren) 
\".\" \"mailbox\"\r\n");
     }
 
@@ -82,7 +83,7 @@ public class ListingEncodingUtilsTest  {
     public void encodeShouldAddSeveralAttributes() throws Exception {
         ListResponse input = new ListResponse(Children.NO_INFERIORS, 
Selectability.NOSELECT, nameParameter, '.');
 
-        ListingEncodingUtils.encodeListingResponse(typeNameParameters, 
composer, input);
+        ListingEncodingUtils.encodeListingResponse(LIST_COMMAND, composer, 
input);
         assertThat(writer.getString()).isEqualTo("* LIST (\\Noselect 
\\Noinferiors) \".\" \"mailbox\"\r\n");
     }
 
@@ -90,7 +91,7 @@ public class ListingEncodingUtilsTest  {
     public void encodeShouldAddMarkedAttribute() throws Exception {
         ListResponse input = new 
ListResponse(Children.CHILDREN_ALLOWED_BUT_UNKNOWN, Selectability.MARKED, 
nameParameter, '.');
 
-        ListingEncodingUtils.encodeListingResponse(typeNameParameters, 
composer, input);
+        ListingEncodingUtils.encodeListingResponse(LIST_COMMAND, composer, 
input);
         assertThat(writer.getString()).isEqualTo("* LIST (\\Marked) \".\" 
\"mailbox\"\r\n");
     }
 
@@ -98,7 +99,7 @@ public class ListingEncodingUtilsTest  {
     public void encodeShouldAddUnmarkedAttribute() throws Exception {
         ListResponse input = new 
ListResponse(Children.CHILDREN_ALLOWED_BUT_UNKNOWN, Selectability.UNMARKED, 
nameParameter, '.');
 
-        ListingEncodingUtils.encodeListingResponse(typeNameParameters, 
composer, input);
+        ListingEncodingUtils.encodeListingResponse(LIST_COMMAND, composer, 
input);
         assertThat(writer.getString()).isEqualTo("* LIST (\\Unmarked) \".\" 
\"mailbox\"\r\n");
     }
 
@@ -106,7 +107,7 @@ public class ListingEncodingUtilsTest  {
     public void encodeShouldAddXListAttributeWhenTypeIsInbox() throws 
Exception {
         XListResponse input = new XListResponse(Children.HAS_CHILDREN, 
Selectability.NONE, nameParameter, '.', MailboxType.INBOX);
 
-        ListingEncodingUtils.encodeListingResponse("XLIST", composer, input);
+        ListingEncodingUtils.encodeListingResponse(XLIST_COMMAND, composer, 
input);
         assertThat(writer.getString()).isEqualTo("* XLIST (\\HasChildren 
\\Inbox) \".\" \"mailbox\"\r\n");
     }
 }


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

Reply via email to