JAMES-2366 More functional style for MemoryRecipientRewriteTable

Project: http://git-wip-us.apache.org/repos/asf/james-project/repo
Commit: http://git-wip-us.apache.org/repos/asf/james-project/commit/32132801
Tree: http://git-wip-us.apache.org/repos/asf/james-project/tree/32132801
Diff: http://git-wip-us.apache.org/repos/asf/james-project/diff/32132801

Branch: refs/heads/master
Commit: 32132801faec40ade2bf82da4256385feac447f7
Parents: 8f1689e
Author: benwa <[email protected]>
Authored: Wed Mar 28 10:10:58 2018 +0700
Committer: benwa <[email protected]>
Committed: Tue Apr 3 16:58:21 2018 +0700

----------------------------------------------------------------------
 .../rrt/memory/MemoryRecipientRewriteTable.java | 28 ++++++++++----------
 1 file changed, 14 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/32132801/server/data/data-memory/src/main/java/org/apache/james/rrt/memory/MemoryRecipientRewriteTable.java
----------------------------------------------------------------------
diff --git 
a/server/data/data-memory/src/main/java/org/apache/james/rrt/memory/MemoryRecipientRewriteTable.java
 
b/server/data/data-memory/src/main/java/org/apache/james/rrt/memory/MemoryRecipientRewriteTable.java
index 6b8e1c7..2662e13 100644
--- 
a/server/data/data-memory/src/main/java/org/apache/james/rrt/memory/MemoryRecipientRewriteTable.java
+++ 
b/server/data/data-memory/src/main/java/org/apache/james/rrt/memory/MemoryRecipientRewriteTable.java
@@ -26,6 +26,7 @@ import java.util.Map;
 import java.util.Optional;
 import java.util.stream.Stream;
 
+import org.apache.commons.lang3.tuple.Pair;
 import org.apache.james.core.Domain;
 import org.apache.james.rrt.api.RecipientRewriteTableException;
 import org.apache.james.rrt.lib.AbstractRecipientRewriteTable;
@@ -33,8 +34,8 @@ import org.apache.james.rrt.lib.Mapping;
 import org.apache.james.rrt.lib.Mappings;
 import org.apache.james.rrt.lib.MappingsImpl;
 
+import com.github.steveash.guavate.Guavate;
 import com.google.common.base.Objects;
-import com.google.common.collect.Maps;
 import com.google.common.collect.Multimaps;
 
 public class MemoryRecipientRewriteTable extends AbstractRecipientRewriteTable 
{
@@ -121,19 +122,18 @@ public class MemoryRecipientRewriteTable extends 
AbstractRecipientRewriteTable {
         if (mappingEntries.isEmpty()) {
             return null;
         }
-        Map<String, Collection<Mappings>> userMappingsMap = 
Multimaps.transformEntries(
-            Multimaps.index(mappingEntries, InMemoryMappingEntry::asKey),
-            (Maps.EntryTransformer<String, InMemoryMappingEntry, Mappings>)
-                (s, mappingEntry) -> 
MappingsImpl.fromMappings(Stream.of(mappingEntry.getMapping())))
-            .asMap();
-        return Maps.transformEntries(userMappingsMap,
-            (s, mappingsList) -> {
-                Mappings result = MappingsImpl.empty();
-                for (Mappings mappings : mappingsList) {
-                    result = result.union(mappings);
-                }
-                return result;
-            });
+        return Multimaps.index(mappingEntries, InMemoryMappingEntry::asKey)
+            .asMap()
+            .entrySet()
+            .stream()
+            .map(entry -> Pair.of(entry.getKey(), 
toMappings(entry.getValue())))
+            .collect(Guavate.toImmutableMap(Pair::getKey, Pair::getValue));
+    }
+
+    private MappingsImpl toMappings(Collection<InMemoryMappingEntry> 
inMemoryMappingEntries) {
+        return MappingsImpl.fromMappings(inMemoryMappingEntries
+            .stream()
+            .map(InMemoryMappingEntry::getMapping));
     }
 
     private Optional<Mappings> retrieveMappings(final String user, final 
Domain domain) {


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

Reply via email to