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 ma...@apache.org on 2015/11/02 14:46:31 UTC

svn commit: r1711983 - in /james/project/trunk/server/data: data-api/src/main/java/org/apache/james/rrt/lib/ data-library/src/main/java/org/apache/james/rrt/lib/ data-library/src/test/java/org/apache/james/rrt/lib/

Author: matthieu
Date: Mon Nov  2 13:46:31 2015
New Revision: 1711983

URL: http://svn.apache.org/viewvc?rev=1711983&view=rev
Log:
JAMES-1595 Mappings is now a list of Mapping obj, start using it

Added:
    james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java
      - copied, changed from r1711982, james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
    james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java
      - copied, changed from r1711982, james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
Modified:
    james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
    james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
    james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java

Copied: james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java (from r1711982, james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java)
URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java?p2=james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java&p1=james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java&r1=1711982&r2=1711983&rev=1711983&view=diff
==============================================================================
--- james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java (original)
+++ james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mapping.java Mon Nov  2 13:46:31 2015
@@ -21,16 +21,8 @@
 package org.apache.james.rrt.lib;
 
 
-public interface Mappings {
+public interface Mapping {
 
-    boolean contains(String mapping);
+    String asString();
 
-    int size();
-
-    Mappings remove(String mapping);
-
-    boolean isEmpty();
-
-    Iterable<String> asStrings();
-    
 }
\ No newline at end of file

Modified: james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java
URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java?rev=1711983&r1=1711982&r2=1711983&view=diff
==============================================================================
--- james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java (original)
+++ james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java Mon Nov  2 13:46:31 2015
@@ -21,7 +21,7 @@
 package org.apache.james.rrt.lib;
 
 
-public interface Mappings {
+public interface Mappings extends Iterable<Mapping> {
 
     boolean contains(String mapping);
 

Copied: james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java (from r1711982, james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java)
URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java?p2=james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java&p1=james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java&r1=1711982&r2=1711983&rev=1711983&view=diff
==============================================================================
--- james/project/trunk/server/data/data-api/src/main/java/org/apache/james/rrt/lib/Mappings.java (original)
+++ james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingImpl.java Mon Nov  2 13:46:31 2015
@@ -20,17 +20,38 @@
 
 package org.apache.james.rrt.lib;
 
+import com.google.common.base.Objects;
 
-public interface Mappings {
 
-    boolean contains(String mapping);
+public class MappingImpl implements Mapping {
 
-    int size();
+    public static MappingImpl of(String mapping) {
+        return new MappingImpl(mapping);
+    }
 
-    Mappings remove(String mapping);
+    private final String mapping;
 
-    boolean isEmpty();
-
-    Iterable<String> asStrings();
+    public MappingImpl(String mapping) {
+        this.mapping = mapping;
+    }
+    
+    @Override
+    public String asString() {
+        return mapping;
+    }
+    
+    @Override
+    public boolean equals(Object other) {
+        if (other instanceof MappingImpl) {
+            MappingImpl otherMapping = (MappingImpl) other;
+            return Objects.equal(mapping, otherMapping.mapping);
+        }
+        return false;
+    }
+    
+    @Override
+    public int hashCode() {
+        return Objects.hashCode(mapping);
+    }
     
 }
\ No newline at end of file

Modified: james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java
URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java?rev=1711983&r1=1711982&r2=1711983&view=diff
==============================================================================
--- james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java (original)
+++ james/project/trunk/server/data/data-library/src/main/java/org/apache/james/rrt/lib/MappingsImpl.java Mon Nov  2 13:46:31 2015
@@ -25,17 +25,19 @@ import java.util.Collection;
 import java.util.Iterator;
 import java.util.StringTokenizer;
 
+import com.google.common.base.Function;
+import com.google.common.collect.FluentIterable;
 import com.google.common.collect.ImmutableList;
 import com.google.common.collect.Lists;
 
 public class MappingsImpl implements Mappings {
 
     public static MappingsImpl empty() {
-        return new MappingsImpl(new ArrayList<String>());
+        return builder().build();
     }
     
     public static MappingsImpl fromRawString(String raw) {
-        return new MappingsImpl(mappingToCollection(raw));
+        return fromCollection(mappingToCollection(raw));
     }
     
     private static ArrayList<String> mappingToCollection(String rawMapping) {
@@ -48,8 +50,12 @@ public class MappingsImpl implements Map
         return map;
     }
     
-    public static Mappings fromCollection(Collection<String> mappings) {
-        return new MappingsImpl(mappings);
+    public static MappingsImpl fromCollection(Collection<String> mappings) {
+        Builder builder = builder();
+        for (String mapping: mappings) {
+            builder.add(mapping);
+        }
+        return builder.build();
     }
     
     public static Builder from(Mappings from) {
@@ -64,37 +70,42 @@ public class MappingsImpl implements Map
     
     public static class Builder {
         
-        private final ImmutableList.Builder<String> mappings;
+        private final ImmutableList.Builder<Mapping> mappings;
         
         private Builder() {
             mappings = ImmutableList.builder();
         }
 
         public Builder add(String mapping) {
-            mappings.add(mapping);
+            mappings.add(MappingImpl.of(mapping));
             return this;
         }
 
         public Builder addAll(Mappings mappings) {
-            this.mappings.addAll(mappings.asStrings());
+            this.mappings.addAll(mappings);
             return this;
         }
         
-        public Mappings build() {
+        public MappingsImpl build() {
             return new MappingsImpl(mappings.build());
         }
         
     }
     
-    private final ImmutableList<String> mappings;
+    private final ImmutableList<Mapping> mappings;
 
-    private MappingsImpl(Collection<String> mappings) {
+    private MappingsImpl(Collection<Mapping> mappings) {
         this.mappings = ImmutableList.copyOf(mappings);
     }
     
     @Override
     public Iterable<String> asStrings() {
-        return mappings;
+        return FluentIterable.from(mappings).transform(new Function<Mapping, String>() {
+            @Override
+            public String apply(Mapping input) {
+                return input.asString();
+            }
+        });
     }
 
     @Override
@@ -108,11 +119,12 @@ public class MappingsImpl implements Map
     }
 
     @Override
-    public Mappings remove(String mapping) {
+    public Mappings remove(String mappingAsString) {
+        MappingImpl mapping = MappingImpl.of(mappingAsString);
         if (mappings.contains(mapping)) {
-            ArrayList<String> updatedMappings = Lists.newArrayList(mappings);
+            ArrayList<Mapping> updatedMappings = Lists.newArrayList(mappings);
             updatedMappings.remove(mapping);
-            return MappingsImpl.fromCollection(updatedMappings);
+            return new MappingsImpl(updatedMappings);
         }
         return this;
     }
@@ -121,5 +133,10 @@ public class MappingsImpl implements Map
     public boolean isEmpty() {
         return mappings.isEmpty();
     }
+    
+    @Override
+    public Iterator<Mapping> iterator() {
+        return mappings.iterator();
+    }
 
 }
\ No newline at end of file

Modified: james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java
URL: http://svn.apache.org/viewvc/james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java?rev=1711983&r1=1711982&r2=1711983&view=diff
==============================================================================
--- james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java (original)
+++ james/project/trunk/server/data/data-library/src/test/java/org/apache/james/rrt/lib/RewriteTablesStepdefs.java Mon Nov  2 13:46:31 2015
@@ -112,7 +112,7 @@ public class RewriteTablesStepdefs {
 
     @Then("mappings for user \"([^\"]*)\" at domain \"([^\"]*)\" should be empty")
     public void assertMappingsIsEmpty(String user, String domain) throws Throwable {
-        assertThat(rewriteTable.getMappings(user, domain).asStrings()).isNullOrEmpty();
+        assertThat(rewriteTable.getMappings(user, domain)).isNullOrEmpty();
     }
 
     @Then("mappings for user \"([^\"]*)\" at domain \"([^\"]*)\" should contains only \"([^\"]*)\"")



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