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 2017/09/29 07:21:44 UTC

[06/31] james-project git commit: MAILBOX-307 Factorise code for EnumSet copies in MailboxACL

MAILBOX-307 Factorise code for EnumSet copies in MailboxACL


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

Branch: refs/heads/master
Commit: f5a57cb0d4385ac5674bdb78f4ac64570632dfc6
Parents: 6bf7a9f
Author: benwa <bt...@linagora.com>
Authored: Wed Sep 27 10:41:29 2017 +0700
Committer: Matthieu Baechler <ma...@apache.org>
Committed: Fri Sep 29 09:20:40 2017 +0200

----------------------------------------------------------------------
 .../apache/james/mailbox/model/MailboxACL.java  | 33 ++++++++++----------
 1 file changed, 16 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/f5a57cb0/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxACL.java
----------------------------------------------------------------------
diff --git a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxACL.java b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxACL.java
index cfbcff0..64180fb 100644
--- a/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxACL.java
+++ b/mailbox/api/src/main/java/org/apache/james/mailbox/model/MailboxACL.java
@@ -21,6 +21,7 @@ package org.apache.james.mailbox.model;
 
 import java.util.AbstractMap;
 import java.util.Arrays;
+import java.util.Collection;
 import java.util.EnumSet;
 import java.util.Iterator;
 import java.util.List;
@@ -51,6 +52,13 @@ import com.google.common.collect.ImmutableMap;
  */
 public class MailboxACL {
 
+    private static EnumSet<Right> copyOf(Collection<Right> collection) {
+        if (collection.isEmpty()) {
+            return EnumSet.noneOf(Right.class);
+        }
+        return EnumSet.copyOf(collection);
+    }
+
     /**
      * SETACL command mode.
      */
@@ -176,7 +184,7 @@ public class MailboxACL {
         private final EnumSet<Right> value;
 
         private Rfc4314Rights(EnumSet<Right> rights) {
-            this.value = EnumSet.copyOf(rights);
+            this.value = copyOf(rights);
         }
 
         private Rfc4314Rights() {
@@ -184,7 +192,7 @@ public class MailboxACL {
         }
 
         public Rfc4314Rights(Right... rights) {
-            this(EnumSet.copyOf(Arrays.asList(rights)));
+            this(copyOf(Arrays.asList(rights)));
         }
 
         public Rfc4314Rights(Right right) throws UnsupportedRightException {
@@ -193,26 +201,17 @@ public class MailboxACL {
 
         /* Used for json serialization (probably a bad idea) */
         public Rfc4314Rights(int serializedRights) {
-            List<Right> rights = Right.allRights.stream()
+            this(copyOf(Right.allRights
+                .stream()
                 .filter(right -> ((serializedRights >> right.ordinal()) & 1) != 0)
-                .collect(Collectors.toList());
-            if (rights.isEmpty()) {
-                this.value = EnumSet.noneOf(Right.class);
-            } else {
-                this.value = EnumSet.copyOf(rights);
-            }
+                .collect(Collectors.toList())));
         }
 
         public Rfc4314Rights(String serializedRfc4314Rights) throws UnsupportedRightException {
-            List<Right> rights = serializedRfc4314Rights.chars()
+            this.value = copyOf(serializedRfc4314Rights.chars()
                 .mapToObj(i -> (char) i)
                 .flatMap(Throwing.function(this::convert).sneakyThrow())
-                .collect(Collectors.toList());
-            if (rights.isEmpty()) {
-                this.value = EnumSet.noneOf(Right.class);
-            } else {
-                this.value = EnumSet.copyOf(rights);
-            }
+                .collect(Collectors.toList()));
         }
 
         private Stream<Right> convert(char flag) throws UnsupportedRightException {
@@ -292,7 +291,7 @@ public class MailboxACL {
          * @throws UnsupportedRightException
          */
         public Rfc4314Rights except(Rfc4314Rights toRemove) throws UnsupportedRightException {
-            EnumSet<Right> copy = EnumSet.copyOf(value);
+            EnumSet<Right> copy = copyOf(value);
             copy.removeAll(convertRightsToList(toRemove));
             return new Rfc4314Rights(copy);
         }


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