You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by bt...@apache.org on 2019/12/13 10:01:18 UTC

[james-project] 13/17: [Refactoring] Strong typing for ImapComposer::commandName

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 dab80723d85bc22bc0041464d1151737dbd01667
Author: Benoit Tellier <bt...@linagora.com>
AuthorDate: Fri Dec 13 04:38:25 2019 +0100

    [Refactoring] Strong typing for ImapComposer::commandName
    
    Note that this was also called by some arguments that were not command
    names. Calling `message` in that case ensure the same behaviour.
---
 .../src/main/java/org/apache/james/imap/api/ImapConstants.java |  6 ------
 .../java/org/apache/james/imap/encode/ACLResponseEncoder.java  |  2 +-
 .../apache/james/imap/encode/AnnotationResponseEncoder.java    |  2 +-
 .../org/apache/james/imap/encode/ImapResponseComposer.java     |  3 ++-
 .../apache/james/imap/encode/ListRightsResponseEncoder.java    |  2 +-
 .../org/apache/james/imap/encode/MyRightsResponseEncoder.java  |  2 +-
 .../org/apache/james/imap/encode/NamespaceResponseEncoder.java |  2 +-
 .../org/apache/james/imap/encode/QuotaResponseEncoder.java     |  2 +-
 .../org/apache/james/imap/encode/QuotaRootResponseEncoder.java |  2 +-
 .../org/apache/james/imap/encode/SearchResponseEncoder.java    |  2 +-
 .../org/apache/james/imap/encode/StatusResponseEncoder.java    |  2 +-
 .../james/imap/encode/base/ImapResponseComposerImpl.java       |  7 +++----
 .../apache/james/imap/message/response/ListRightsResponse.java |  2 +-
 .../apache/james/imap/encode/NamespaceResponseEncoderTest.java | 10 +++++-----
 14 files changed, 20 insertions(+), 26 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 27c358e..06ee861 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
@@ -199,18 +199,12 @@ public interface ImapConstants {
     ImapCommand STORE_COMMAND = ImapCommand.selectedStateCommand("STORE");
     ImapCommand UID_COMMAND = ImapCommand.selectedStateCommand("UID");
 
-    String SEARCH_RESPONSE_NAME = "SEARCH";
-
     String ACL_RESPONSE_NAME = "ACL";
 
     String QUOTA_RESPONSE_NAME = "QUOTA";
 
     String QUOTAROOT_RESPONSE_NAME = "QUOTAROOT";
 
-    String LISTRIGHTS_RESPONSE_NAME = "LISTRIGHTS";
-
-    String MYRIGHTS_RESPONSE_NAME = "MYRIGHTS";
-
     String ANNOTATION_RESPONSE_NAME = "METADATA";
 
     String NAME_ATTRIBUTE_NOINFERIORS = "\\Noinferiors";
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/encode/ACLResponseEncoder.java b/protocols/imap/src/main/java/org/apache/james/imap/encode/ACLResponseEncoder.java
index 2b4fba0..dc290ad 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/encode/ACLResponseEncoder.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/encode/ACLResponseEncoder.java
@@ -36,7 +36,7 @@ public class ACLResponseEncoder implements ImapResponseEncoder<ACLResponse> {
     public void encode(ACLResponse aclResponse, ImapResponseComposer composer) throws IOException {
         Map<EntryKey, Rfc4314Rights> entries = aclResponse.getAcl().getEntries();
         composer.untagged();
-        composer.commandName(ImapConstants.ACL_RESPONSE_NAME);
+        composer.message(ImapConstants.ACL_RESPONSE_NAME);
         
         String mailboxName = aclResponse.getMailboxName();
         composer.mailbox(mailboxName == null ? "" : mailboxName);
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/encode/AnnotationResponseEncoder.java b/protocols/imap/src/main/java/org/apache/james/imap/encode/AnnotationResponseEncoder.java
index 336db1e..a764d39 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/encode/AnnotationResponseEncoder.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/encode/AnnotationResponseEncoder.java
@@ -40,7 +40,7 @@ public class AnnotationResponseEncoder implements ImapResponseEncoder<Annotation
     @Override
     public void encode(AnnotationResponse response, ImapResponseComposer composer) throws IOException {
         composer.untagged();
-        composer.commandName(ImapConstants.ANNOTATION_RESPONSE_NAME);
+        composer.message(ImapConstants.ANNOTATION_RESPONSE_NAME);
 
         composer.quote(Optional.ofNullable(response.getMailboxName()).orElse(""));
         composeAnnotations(composer, response.getMailboxAnnotations());
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/encode/ImapResponseComposer.java b/protocols/imap/src/main/java/org/apache/james/imap/encode/ImapResponseComposer.java
index 60df2b2..ebede3f 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/encode/ImapResponseComposer.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/encode/ImapResponseComposer.java
@@ -23,6 +23,7 @@ import java.io.IOException;
 
 import javax.mail.Flags;
 
+import org.apache.james.imap.api.ImapCommand;
 import org.apache.james.imap.api.Tag;
 import org.apache.james.imap.api.display.ModifiedUtf7;
 import org.apache.james.imap.api.message.IdRange;
@@ -74,7 +75,7 @@ public interface ImapResponseComposer {
     /**
      * @return composer
      */
-    ImapResponseComposer commandName(String name) throws IOException;
+    ImapResponseComposer commandName(ImapCommand command) throws IOException;
 
     /**
      * Write the message of type <code>String</code>
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/encode/ListRightsResponseEncoder.java b/protocols/imap/src/main/java/org/apache/james/imap/encode/ListRightsResponseEncoder.java
index 5af2bd4..5fdddce 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/encode/ListRightsResponseEncoder.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/encode/ListRightsResponseEncoder.java
@@ -37,7 +37,7 @@ public class ListRightsResponseEncoder implements ImapResponseEncoder<ListRights
     @Override
     public void encode(ListRightsResponse listRightsResponse, ImapResponseComposer composer) throws IOException {
         composer.untagged();
-        composer.commandName(ImapConstants.LISTRIGHTS_RESPONSE_NAME);
+        composer.commandName(ImapConstants.LISTRIGHTS_COMMAND);
         
         String mailboxName = listRightsResponse.getMailboxName();
         composer.mailbox(mailboxName == null ? "" : mailboxName);
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/encode/MyRightsResponseEncoder.java b/protocols/imap/src/main/java/org/apache/james/imap/encode/MyRightsResponseEncoder.java
index 17be615..3d1ecab 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/encode/MyRightsResponseEncoder.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/encode/MyRightsResponseEncoder.java
@@ -38,7 +38,7 @@ public class MyRightsResponseEncoder implements ImapResponseEncoder<MyRightsResp
     public void encode(MyRightsResponse aclResponse, ImapResponseComposer composer) throws IOException {
         Rfc4314Rights myRights = aclResponse.getMyRights();
         composer.untagged();
-        composer.commandName(ImapConstants.MYRIGHTS_RESPONSE_NAME);
+        composer.commandName(ImapConstants.MYRIGHTS_COMMAND);
         
         String mailboxName = aclResponse.getMailboxName();
         composer.mailbox(mailboxName == null ? "" : mailboxName);
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/encode/NamespaceResponseEncoder.java b/protocols/imap/src/main/java/org/apache/james/imap/encode/NamespaceResponseEncoder.java
index 6d2456b..0d04583 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/encode/NamespaceResponseEncoder.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/encode/NamespaceResponseEncoder.java
@@ -37,7 +37,7 @@ public class NamespaceResponseEncoder implements ImapResponseEncoder<NamespaceRe
     @Override
     public void encode(NamespaceResponse response, ImapResponseComposer composer) throws IOException {
         composer.untagged();
-        composer.commandName(ImapConstants.NAMESPACE_COMMAND.getName());
+        composer.commandName(ImapConstants.NAMESPACE_COMMAND);
 
         final List<NamespaceResponse.Namespace> personal = response.getPersonal();
         encode(personal, composer);
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/encode/QuotaResponseEncoder.java b/protocols/imap/src/main/java/org/apache/james/imap/encode/QuotaResponseEncoder.java
index 6ee7093..fd826c4 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/encode/QuotaResponseEncoder.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/encode/QuotaResponseEncoder.java
@@ -41,7 +41,7 @@ public class QuotaResponseEncoder implements ImapResponseEncoder<QuotaResponse>
         Quota<?, ?> quota = quotaResponse.getQuota();
 
         composer.untagged();
-        composer.commandName(ImapConstants.QUOTA_RESPONSE_NAME);
+        composer.message(ImapConstants.QUOTA_RESPONSE_NAME);
         composer.message(quotaRoot == null ? "" : quotaRoot);
         composer.openParen();
         composer.message(quotaResponse.getResourceName());
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/encode/QuotaRootResponseEncoder.java b/protocols/imap/src/main/java/org/apache/james/imap/encode/QuotaRootResponseEncoder.java
index 1cb3a27..897e98b 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/encode/QuotaRootResponseEncoder.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/encode/QuotaRootResponseEncoder.java
@@ -39,7 +39,7 @@ public class QuotaRootResponseEncoder implements ImapResponseEncoder<QuotaRootRe
         String mailbox = quotaRootResponse.getMailboxName();
 
         composer.untagged();
-        composer.commandName(ImapConstants.QUOTAROOT_RESPONSE_NAME);
+        composer.message(ImapConstants.QUOTAROOT_RESPONSE_NAME);
         composer.mailbox(mailbox == null ? "" : mailbox);
         composer.message(quotaRoot == null ? "" : quotaRoot);
         composer.end();
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/encode/SearchResponseEncoder.java b/protocols/imap/src/main/java/org/apache/james/imap/encode/SearchResponseEncoder.java
index daef20f..8f134ab 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/encode/SearchResponseEncoder.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/encode/SearchResponseEncoder.java
@@ -38,7 +38,7 @@ public class SearchResponseEncoder implements ImapResponseEncoder<SearchResponse
         final long[] ids = response.getIds();
         ModSeq highestModSeq = response.getHighestModSeq();
         composer.untagged();
-        composer.message(ImapConstants.SEARCH_RESPONSE_NAME);
+        composer.commandName(ImapConstants.SEARCH_COMMAND);
         if (ids != null) {
             for (long id : ids) {
                 composer.message(id);
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/encode/StatusResponseEncoder.java b/protocols/imap/src/main/java/org/apache/james/imap/encode/StatusResponseEncoder.java
index 8f0435e..45aae42 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/encode/StatusResponseEncoder.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/encode/StatusResponseEncoder.java
@@ -95,7 +95,7 @@ public class StatusResponseEncoder implements ImapResponseEncoder<ImmutableStatu
             composer.closeSquareBracket();
         }
         if (command != null) {
-            composer.commandName(command.getName());
+            composer.commandName(command);
         }
         if (text != null && !"".equals(text)) {
             composer.message(text);
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/encode/base/ImapResponseComposerImpl.java b/protocols/imap/src/main/java/org/apache/james/imap/encode/base/ImapResponseComposerImpl.java
index 950123f..55908bb 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/encode/base/ImapResponseComposerImpl.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/encode/base/ImapResponseComposerImpl.java
@@ -24,6 +24,7 @@ import java.nio.charset.Charset;
 
 import javax.mail.Flags;
 
+import org.apache.james.imap.api.ImapCommand;
 import org.apache.james.imap.api.ImapConstants;
 import org.apache.james.imap.api.Tag;
 import org.apache.james.imap.api.display.ModifiedUtf7;
@@ -213,10 +214,8 @@ public class ImapResponseComposerImpl implements ImapConstants, ImapResponseComp
     }
 
     @Override
-    public ImapResponseComposer commandName(String commandName) throws IOException {
-        space();
-        writeASCII(commandName);
-        return this;
+    public ImapResponseComposer commandName(ImapCommand command) throws IOException {
+        return message(command.getName());
     }
 
     @Override
diff --git a/protocols/imap/src/main/java/org/apache/james/imap/message/response/ListRightsResponse.java b/protocols/imap/src/main/java/org/apache/james/imap/message/response/ListRightsResponse.java
index 0b64328..970491d 100644
--- a/protocols/imap/src/main/java/org/apache/james/imap/message/response/ListRightsResponse.java
+++ b/protocols/imap/src/main/java/org/apache/james/imap/message/response/ListRightsResponse.java
@@ -73,7 +73,7 @@ public final class ListRightsResponse implements ImapResponseMessage {
 
     @Override
     public String toString() {
-        StringBuilder result = new StringBuilder().append(ImapConstants.LISTRIGHTS_RESPONSE_NAME).append(' ').append(mailboxName).append(' ').append(identifier);
+        StringBuilder result = new StringBuilder().append(ImapConstants.LISTRIGHTS_COMMAND.getName()).append(' ').append(mailboxName).append(' ').append(identifier);
 
         for (MailboxACL.Rfc4314Rights optionalRightsGroup : rights) {
             result.append(' ').append(optionalRightsGroup.toString());
diff --git a/protocols/imap/src/test/java/org/apache/james/imap/encode/NamespaceResponseEncoderTest.java b/protocols/imap/src/test/java/org/apache/james/imap/encode/NamespaceResponseEncoderTest.java
index 946dae9..7874341 100644
--- a/protocols/imap/src/test/java/org/apache/james/imap/encode/NamespaceResponseEncoderTest.java
+++ b/protocols/imap/src/test/java/org/apache/james/imap/encode/NamespaceResponseEncoderTest.java
@@ -56,7 +56,7 @@ public class NamespaceResponseEncoderTest {
 
         InOrder inOrder = Mockito.inOrder(mockComposer);
         inOrder.verify(mockComposer, times(1)).untagged();
-        inOrder.verify(mockComposer, times(1)).commandName(ImapConstants.NAMESPACE_COMMAND.getName());
+        inOrder.verify(mockComposer, times(1)).commandName(ImapConstants.NAMESPACE_COMMAND);
         inOrder.verify(mockComposer, times(2)).nil();
         inOrder.verify(mockComposer, times(2)).openParen();
         inOrder.verify(mockComposer, times(1)).quote(aPrefix + aDeliminator);
@@ -79,7 +79,7 @@ public class NamespaceResponseEncoderTest {
 
         InOrder inOrder = Mockito.inOrder(mockComposer);
         inOrder.verify(mockComposer, times(1)).untagged();
-        inOrder.verify(mockComposer, times(1)).commandName(ImapConstants.NAMESPACE_COMMAND.getName());
+        inOrder.verify(mockComposer, times(1)).commandName(ImapConstants.NAMESPACE_COMMAND);
         inOrder.verify(mockComposer, times(1)).nil();
         inOrder.verify(mockComposer, times(2)).openParen();
         inOrder.verify(mockComposer, times(1)).quote(aPrefix + aDeliminator);
@@ -103,7 +103,7 @@ public class NamespaceResponseEncoderTest {
 
         InOrder inOrder = Mockito.inOrder(mockComposer);
         inOrder.verify(mockComposer, times(1)).untagged();
-        inOrder.verify(mockComposer, times(1)).commandName(ImapConstants.NAMESPACE_COMMAND.getName());
+        inOrder.verify(mockComposer, times(1)).commandName(ImapConstants.NAMESPACE_COMMAND);
         inOrder.verify(mockComposer, times(2)).openParen();
         inOrder.verify(mockComposer, times(1)).quote(aPrefix + aDeliminator);
         inOrder.verify(mockComposer, times(1)).quote(aDeliminator);
@@ -130,7 +130,7 @@ public class NamespaceResponseEncoderTest {
 
         InOrder inOrder = Mockito.inOrder(mockComposer);
         inOrder.verify(mockComposer, times(1)).untagged();
-        inOrder.verify(mockComposer, times(1)).commandName(ImapConstants.NAMESPACE_COMMAND.getName());
+        inOrder.verify(mockComposer, times(1)).commandName(ImapConstants.NAMESPACE_COMMAND);
         inOrder.verify(mockComposer, times(2)).openParen();
         inOrder.verify(mockComposer, times(1)).quote(aPrefix + aDeliminator);
         inOrder.verify(mockComposer, times(1)).quote(aDeliminator);
@@ -150,7 +150,7 @@ public class NamespaceResponseEncoderTest {
 
         InOrder inOrder = Mockito.inOrder(mockComposer);
         inOrder.verify(mockComposer, times(1)).untagged();
-        inOrder.verify(mockComposer, times(1)).commandName(ImapConstants.NAMESPACE_COMMAND.getName());
+        inOrder.verify(mockComposer, times(1)).commandName(ImapConstants.NAMESPACE_COMMAND);
         inOrder.verify(mockComposer, times(3)).nil();
         inOrder.verify(mockComposer, times(1)).end();
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org