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 rc...@apache.org on 2020/03/17 04:52:33 UTC

[james-project] 06/08: [Refactoring] replace loops by removeIf

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

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

commit 413e5b54d1e0c8792516625e6320bdb104f428e1
Author: Matthieu Baechler <ma...@apache.org>
AuthorDate: Fri Feb 28 18:08:51 2020 +0100

    [Refactoring] replace loops by removeIf
---
 .../inmemory/mail/InMemoryMessageMapper.java       |  6 +-----
 .../store/mail/model/impl/PropertyBuilder.java     | 22 +++-------------------
 .../james/transport/mailets/RemoveMimeHeader.java  | 12 +++---------
 .../mailets/RemoveMimeHeaderByPrefix.java          | 14 ++++----------
 4 files changed, 11 insertions(+), 43 deletions(-)

diff --git a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
index e2c991c..191266f 100644
--- a/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
+++ b/mailbox/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
@@ -128,11 +128,7 @@ public class InMemoryMessageMapper extends AbstractMessageMapper {
     @Override
     public Iterator<MailboxMessage> findInMailbox(Mailbox mailbox, MessageRange set, FetchType ftype, int max) {
         List<MailboxMessage> results = new ArrayList<>(getMembershipByUidForMailbox(mailbox).values());
-        for (Iterator<MailboxMessage> it = results.iterator(); it.hasNext();) {
-            if (!set.includes(it.next().getUid())) {
-                it.remove();
-            }
-        }
+        results.removeIf(mailboxMessage -> !set.includes(mailboxMessage.getUid()));
         
         Collections.sort(results);
 
diff --git a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/PropertyBuilder.java b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/PropertyBuilder.java
index 1a59241..90d5192 100644
--- a/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/PropertyBuilder.java
+++ b/mailbox/store/src/main/java/org/apache/james/mailbox/store/mail/model/impl/PropertyBuilder.java
@@ -41,7 +41,6 @@ import static org.apache.james.mailbox.store.mail.model.StandardNames.MIME_MIME_
 import static org.apache.james.mailbox.store.mail.model.StandardNames.MIME_SUB_TYPE_NAME;
 
 import java.util.ArrayList;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Locale;
 import java.util.Map;
@@ -138,12 +137,7 @@ public class PropertyBuilder {
      * @param value null to remove property
      */
     public void setProperty(String namespace, String localName, String value) {
-        for (Iterator<Property> it = properties.iterator();it.hasNext();) {
-            final Property property = it.next();
-            if (property.isNamed(namespace, localName)) {
-                it.remove();
-            }
-        }
+        properties.removeIf(property -> property.isNamed(namespace, localName));
         
         if (value != null) {
             properties.add(new Property(namespace, localName, value));
@@ -157,12 +151,7 @@ public class PropertyBuilder {
      * @param values null to remove property
      */
     public void setProperty(String namespace, String localName, List<String> values) {
-        for (Iterator<Property> it = properties.iterator();it.hasNext();) {
-            final Property property = it.next();
-            if (property.isNamed(namespace, localName)) {
-                it.remove();
-            }
-        }
+        properties.removeIf(property -> property.isNamed(namespace, localName));
         if (values != null) {
             for (String value:values) {
                 properties.add(new Property(namespace, localName, value));
@@ -193,12 +182,7 @@ public class PropertyBuilder {
      * @param valuesByLocalName not null
      */
     public void setProperties(String namespace, Map<String,String> valuesByLocalName) {
-        for (Iterator<Property> it = properties.iterator();it.hasNext();) {
-            final Property property = it.next();
-            if (property.isInSpace(namespace)) {
-                it.remove();
-            }
-        }
+        properties.removeIf(property -> property.isInSpace(namespace));
         for (Map.Entry<String, String> valueByLocalName:valuesByLocalName.entrySet()) {
             properties.add(new Property(namespace, valueByLocalName.getKey().toLowerCase(Locale.US), valueByLocalName.getValue()));
         }
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeader.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeader.java
index c728237..801e706 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeader.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeader.java
@@ -19,7 +19,6 @@
 
 package org.apache.james.transport.mailets;
 
-import java.util.Iterator;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -28,7 +27,6 @@ import javax.mail.internet.MimeMessage;
 
 import org.apache.mailet.Mail;
 import org.apache.mailet.MailetException;
-import org.apache.mailet.PerRecipientHeaders.Header;
 import org.apache.mailet.base.GenericMailet;
 
 import com.google.common.base.Splitter;
@@ -81,13 +79,9 @@ public class RemoveMimeHeader extends GenericMailet {
                 .stream()
                 .collect(Collectors.toList()) // Streaming for concurrent modifications
                 .forEach(recipient -> {
-                    Iterator<Header> it = mail.getPerRecipientSpecificHeaders().getHeadersForRecipient(recipient).iterator();
-                    while (it.hasNext()) {
-                        Header next = it.next();
-                        if (headers.contains(next.getName())) {
-                            it.remove();
-                        }
-                    }
+                    mail.getPerRecipientSpecificHeaders()
+                        .getHeadersForRecipient(recipient)
+                        .removeIf(next -> headers.contains(next.getName()));
                 });
     }
 }
diff --git a/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeaderByPrefix.java b/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeaderByPrefix.java
index 0118e4d..131c32c 100644
--- a/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeaderByPrefix.java
+++ b/mailet/standard/src/main/java/org/apache/james/transport/mailets/RemoveMimeHeaderByPrefix.java
@@ -20,7 +20,6 @@
 
 package org.apache.james.transport.mailets;
 
-import java.util.Iterator;
 import java.util.List;
 import java.util.stream.Collectors;
 
@@ -82,15 +81,10 @@ public class RemoveMimeHeaderByPrefix extends GenericMailet {
         mail.getPerRecipientSpecificHeaders().getRecipientsWithSpecificHeaders()
                 .stream()
                 .collect(Collectors.toList()) // Streaming for concurrent modifications
-                .forEach(recipient -> {
-                    Iterator<org.apache.mailet.PerRecipientHeaders.Header> it = mail.getPerRecipientSpecificHeaders().getHeadersForRecipient(recipient).iterator();
-                    while (it.hasNext()) {
-                        org.apache.mailet.PerRecipientHeaders.Header next = it.next();
-                        if (next.getName().startsWith(prefix)) {
-                            it.remove();
-                        }
-                    }
-                });
+                .forEach(recipient -> 
+                    mail.getPerRecipientSpecificHeaders()
+                        .getHeadersForRecipient(recipient)
+                        .removeIf(next -> next.getName().startsWith(prefix)));
     }
 
     private List<String> headerNamesStartingByPrefix(Mail mail) throws MessagingException {


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