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 ro...@apache.org on 2017/01/11 09:26:33 UTC
[45/50] [abbrv] james-project git commit: MAILET-155 Improve style of
SpecialAddressesUtils
MAILET-155 Improve style of SpecialAddressesUtils
Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/2bf97805
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/2bf97805
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/2bf97805
Branch: refs/heads/master
Commit: 2bf97805547b003d4b9540fc6ca095e50fb459dc
Parents: ae9b5d9
Author: Benoit Tellier <bt...@linagora.com>
Authored: Wed Jan 11 10:16:29 2017 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Wed Jan 11 11:01:50 2017 +0700
----------------------------------------------------------------------
.../transport/util/SpecialAddressesUtils.java | 110 ++++++++-----------
1 file changed, 47 insertions(+), 63 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/james-project/blob/2bf97805/server/mailet/mailets/src/main/java/org/apache/james/transport/util/SpecialAddressesUtils.java
----------------------------------------------------------------------
diff --git a/server/mailet/mailets/src/main/java/org/apache/james/transport/util/SpecialAddressesUtils.java b/server/mailet/mailets/src/main/java/org/apache/james/transport/util/SpecialAddressesUtils.java
index d2ee392..223162a 100644
--- a/server/mailet/mailets/src/main/java/org/apache/james/transport/util/SpecialAddressesUtils.java
+++ b/server/mailet/mailets/src/main/java/org/apache/james/transport/util/SpecialAddressesUtils.java
@@ -18,6 +18,7 @@
****************************************************************/
package org.apache.james.transport.util;
+import java.util.Collection;
import java.util.List;
import java.util.Set;
@@ -73,46 +74,37 @@ public class SpecialAddressesUtils {
public List<MailAddress> replaceSpecialAddresses(Mail mailWithReplacementAddresses, List<MailAddress> mailAddresses) {
ImmutableList.Builder<MailAddress> builder = ImmutableList.builder();
for (MailAddress mailAddress : mailAddresses) {
- if (!SpecialAddress.isSpecialAddress(mailAddress)) {
- builder.add(mailAddress);
- continue;
- }
+ builder.addAll(getCorrespondingAddress(mailWithReplacementAddresses, mailAddress));
+ }
+ return builder.build();
+ }
- SpecialAddressKind specialAddressKind = SpecialAddressKind.forValue(mailAddress.getLocalPart());
- if (specialAddressKind == null) {
- builder.add(mailAddress);
- continue;
- }
- switch (specialAddressKind) {
+ private Collection<MailAddress> getCorrespondingAddress(Mail mail, MailAddress mailAddress) {
+ if (!SpecialAddress.isSpecialAddress(mailAddress)) {
+ return ImmutableSet.of(mailAddress);
+ }
+
+ SpecialAddressKind specialAddressKind = SpecialAddressKind.forValue(mailAddress.getLocalPart());
+ if (specialAddressKind == null) {
+ return ImmutableSet.of(mailAddress);
+ }
+ switch (specialAddressKind) {
case SENDER:
case FROM:
- MailAddress sender = mailWithReplacementAddresses.getSender();
- if (sender != null) {
- builder.add(sender);
- }
- break;
- case REPLY_TO:
- builder.addAll(getReplyTosFromMail(mailWithReplacementAddresses));
- break;
case REVERSE_PATH:
- MailAddress reversePath = mailWithReplacementAddresses.getSender();
- if (reversePath != null) {
- builder.add(reversePath);
- }
- break;
+ return Optional.fromNullable(mail.getSender()).asSet();
+ case REPLY_TO:
+ return getReplyTosFromMail(mail);
case RECIPIENTS:
case TO:
- builder.addAll(mailWithReplacementAddresses.getRecipients());
- break;
+ return mail.getRecipients();
case UNALTERED:
case NULL:
break;
case DELETE:
- builder.add(mailAddress);
- break;
- }
+ return ImmutableSet.of(mailAddress);
}
- return builder.build();
+ return ImmutableList.of();
}
private Set<MailAddress> getReplyTosFromMail(Mail mail) {
@@ -170,60 +162,52 @@ public class SpecialAddressesUtils {
public List<MailAddress> replaceInternetAddresses(Mail mailWithReplacementAddresses, List<InternetAddress> internetAddresses) throws MessagingException {
ImmutableList.Builder<MailAddress> builder = ImmutableList.builder();
for (InternetAddress internetAddress : internetAddresses) {
- MailAddress mailAddress = new MailAddress(internetAddress);
- if (!SpecialAddress.isSpecialAddress(mailAddress)) {
- builder.add(new MailAddress(internetAddress));
- continue;
- }
+ builder.addAll(getCorrespondingAddress(internetAddress, mailWithReplacementAddresses));
+ }
+ return builder.build();
+ }
- SpecialAddressKind specialAddressKind = SpecialAddressKind.forValue(mailAddress.getLocalPart());
- if (specialAddressKind == null) {
- builder.add(mailAddress);
- continue;
- }
+ private Collection<MailAddress> getCorrespondingAddress(InternetAddress internetAddress, Mail mail) throws AddressException {
+ MailAddress mailAddress = new MailAddress(internetAddress);
+ if (!SpecialAddress.isSpecialAddress(mailAddress)) {
+ return ImmutableSet.of(new MailAddress(internetAddress));
+ }
+
+ SpecialAddressKind specialAddressKind = SpecialAddressKind.forValue(mailAddress.getLocalPart());
+ if (specialAddressKind == null) {
+ return ImmutableSet.of(new MailAddress(internetAddress));
+ }
- switch (specialAddressKind) {
+ switch (specialAddressKind) {
case SENDER:
- MailAddress sender = mailWithReplacementAddresses.getSender();
- if (sender != null) {
- builder.add(sender);
- }
- break;
case REVERSE_PATH:
- MailAddress reversePath = mailWithReplacementAddresses.getSender();
- if (reversePath != null) {
- builder.add(reversePath);
- }
- break;
+ return Optional.fromNullable(mail.getSender()).asSet();
case FROM:
try {
- InternetAddress[] fromArray = (InternetAddress[]) mailWithReplacementAddresses.getMessage().getFrom();
- builder.addAll(allOrSender(mailWithReplacementAddresses, fromArray));
+ InternetAddress[] fromArray = (InternetAddress[]) mail.getMessage().getFrom();
+ return allOrSender(mail, fromArray);
} catch (MessagingException me) {
mailet.log("Unable to parse the \"FROM\" header in the original message; ignoring.");
+ return ImmutableSet.of();
}
- break;
case REPLY_TO:
try {
- InternetAddress[] replyToArray = (InternetAddress[]) mailWithReplacementAddresses.getMessage().getReplyTo();
- builder.addAll(allOrSender(mailWithReplacementAddresses, replyToArray));
+ InternetAddress[] replyToArray = (InternetAddress[]) mail.getMessage().getReplyTo();
+ return allOrSender(mail, replyToArray);
} catch (MessagingException me) {
mailet.log("Unable to parse the \"REPLY_TO\" header in the original message; ignoring.");
+ return ImmutableSet.of();
}
- break;
case TO:
case RECIPIENTS:
- builder.addAll(toHeaders(mailWithReplacementAddresses));
- break;
+ return toHeaders(mail);
case NULL:
case UNALTERED:
- break;
+ return ImmutableList.of();
case DELETE:
- builder.add(new MailAddress(internetAddress));
- break;
- }
+ return ImmutableSet.of(new MailAddress(internetAddress));
}
- return builder.build();
+ return ImmutableList.of();
}
private List<MailAddress> allOrSender(Mail mail, InternetAddress[] addresses) throws AddressException {
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org