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