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/01/11 03:01:12 UTC

[02/10] james-project git commit: JAMES-2636 Refactoring and automating some mapping methods

JAMES-2636 Refactoring and automating some mapping methods


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

Branch: refs/heads/master
Commit: 057fbe4575152d2681244ba7d652c08309f97613
Parents: 00dcbd8
Author: Rene Cordier <rc...@linagora.com>
Authored: Mon Jan 7 09:57:45 2019 +0700
Committer: Benoit Tellier <bt...@linagora.com>
Committed: Fri Jan 11 09:48:33 2019 +0700

----------------------------------------------------------------------
 .../java/org/apache/james/rrt/lib/Mapping.java  | 38 +++++++-------------
 .../org/apache/james/rrt/lib/MappingTest.java   |  8 ++---
 2 files changed, 17 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/057fbe45/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java
----------------------------------------------------------------------
diff --git a/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java b/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java
index 9e918dc..e8d1198 100644
--- a/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java
+++ b/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java
@@ -21,6 +21,7 @@
 package org.apache.james.rrt.lib;
 
 import java.io.Serializable;
+import java.util.Arrays;
 import java.util.Optional;
 import java.util.function.Supplier;
 import java.util.stream.Stream;
@@ -147,25 +148,11 @@ public interface Mapping {
     }
 
     static Type detectType(String input) {
-        if (input.startsWith(Type.Regex.asPrefix())) {
-            return Type.Regex;
-        }
-        if (input.startsWith(Type.Domain.asPrefix())) {
-            return Type.Domain;
-        }
-        if (input.startsWith(Type.Error.asPrefix())) {
-            return Type.Error;
-        }
-        if (input.startsWith(Type.Forward.asPrefix())) {
-            return Type.Forward;
-        }
-        if (input.startsWith(Type.Group.asPrefix())) {
-            return Type.Group;
-        }
-        if (input.startsWith(Type.Alias.asPrefix())) {
-            return Type.Alias;
-        }
-        return Type.Address;
+        return Arrays.stream(Type.values())
+            .filter(Type::hasPrefix)
+            .filter(type -> input.startsWith(type.asPrefix()))
+            .findAny()
+            .orElse(Type.Address);
     }
 
     enum Type {
@@ -192,13 +179,14 @@ public interface Mapping {
             return input.substring(asPrefix.length());
         }
 
+        public boolean hasPrefix() {
+            return !asPrefix.isEmpty();
+        }
+
         public static boolean hasPrefix(String mapping) {
-            return mapping.startsWith(Regex.asPrefix())
-                || mapping.startsWith(Domain.asPrefix())
-                || mapping.startsWith(Error.asPrefix())
-                || mapping.startsWith(Forward.asPrefix())
-                || mapping.startsWith(Group.asPrefix())
-                || mapping.startsWith(Alias.asPrefix());
+            return Arrays.stream(Type.values())
+                .filter(Type::hasPrefix)
+                .anyMatch(type -> mapping.startsWith(type.asPrefix()));
         }
 
     }

http://git-wip-us.apache.org/repos/asf/james-project/blob/057fbe45/server/data/data-api/src/test/java/org/apache/james/rrt/lib/MappingTest.java
----------------------------------------------------------------------
diff --git a/server/data/data-api/src/test/java/org/apache/james/rrt/lib/MappingTest.java b/server/data/data-api/src/test/java/org/apache/james/rrt/lib/MappingTest.java
index 5c71bd5..f500199 100644
--- a/server/data/data-api/src/test/java/org/apache/james/rrt/lib/MappingTest.java
+++ b/server/data/data-api/src/test/java/org/apache/james/rrt/lib/MappingTest.java
@@ -99,7 +99,7 @@ public class MappingTest {
     @Test
     void detectTypeShouldReturnAliasWhenAliasPrefix() {
         assertThat(Mapping.detectType(Type.Alias.asPrefix() + "mapping"))
-                .isEqualTo(Type.Alias);
+            .isEqualTo(Type.Alias);
     }
 
     @Test
@@ -141,7 +141,7 @@ public class MappingTest {
     @Test
     void withoutPrefixShouldRemoveAliasPrefix() {
         assertThat(Type.Alias.withoutPrefix(Type.Alias.asPrefix() + "mapping"))
-                .isEqualTo("mapping");
+            .isEqualTo("mapping");
     }
 
     @Test
@@ -208,7 +208,7 @@ public class MappingTest {
     @Test
     void aliasFactoryMethodShouldThrowOnNull() {
         assertThatThrownBy(() -> Mapping.alias(null))
-                .isInstanceOf(NullPointerException.class);
+            .isInstanceOf(NullPointerException.class);
     }
 
     @Test
@@ -338,7 +338,7 @@ public class MappingTest {
     @Test
     void asMailAddressShouldReturnMappingValueForAlias() throws Exception {
         assertThat(Mapping.alias("value@domain").asMailAddress())
-                .contains(new MailAddress("value@domain"));
+            .contains(new MailAddress("value@domain"));
     }
 
 }


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