JAMES-1664 transform MessageProperty to an enum

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

Branch: refs/heads/master
Commit: 8c1920809cdfefc240e19eeb4930ca587e99b864
Parents: 7dfe3e5
Author: Matthieu Baechler <matthieu.baech...@gmail.com>
Authored: Tue Jan 26 16:49:08 2016 +0100
Committer: Antoine Duprat <antdup...@gmail.com>
Committed: Mon Feb 1 13:21:05 2016 +0100

----------------------------------------------------------------------
 server/pom.xml                                  |  2 +-
 .../james/jmap/model/MessageProperty.java       | 80 ++++++++------------
 .../james/jmap/model/MessagePropertyTest.java   | 26 +++----
 3 files changed, 41 insertions(+), 67 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/james-project/blob/8c192080/server/pom.xml
----------------------------------------------------------------------
diff --git a/server/pom.xml b/server/pom.xml
index a00c9f5..19dfa16 100644
--- a/server/pom.xml
+++ b/server/pom.xml
@@ -192,7 +192,7 @@
         <jetty.version>9.3.5.v20151012</jetty.version>
         <cassandra-unit.version>2.1.9.2</cassandra-unit.version>
         <assertj-1.version>1.7.1</assertj-1.version>
-        <assertj-3.version>3.2.0</assertj-3.version>
+        <assertj-3.version>3.3.0</assertj-3.version>
     </properties>
 
     <dependencyManagement>

http://git-wip-us.apache.org/repos/asf/james-project/blob/8c192080/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageProperty.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageProperty.java
 
b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageProperty.java
index df898eb..0e230d4 100644
--- 
a/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageProperty.java
+++ 
b/server/protocols/jmap/src/main/java/org/apache/james/jmap/model/MessageProperty.java
@@ -18,37 +18,38 @@
  ****************************************************************/
 package org.apache.james.jmap.model;
 
-import java.util.Objects;
+import java.util.Arrays;
+import java.util.stream.Stream;
 
 import com.google.common.base.Preconditions;
 
-public class MessageProperty implements Property {
+public enum MessageProperty implements Property {
 
-    public static MessageProperty id = valueOf("id");
-    public static MessageProperty blobId = valueOf("blobId");
-    public static MessageProperty threadId = valueOf("threadId");
-    public static MessageProperty mailboxIds = valueOf("mailboxIds");
-    public static MessageProperty inReplyToMessageId = 
valueOf("inReplyToMessageId");
-    public static MessageProperty isUnread = valueOf("isUnread");
-    public static MessageProperty isFlagged = valueOf("isFlagged");
-    public static MessageProperty isAnswered = valueOf("isAnswered");
-    public static MessageProperty isDraft = valueOf("isDraft");
-    public static MessageProperty hasAttachment = valueOf("hasAttachment");
-    public static MessageProperty headers = valueOf("headers");
-    public static MessageProperty from = valueOf("from");
-    public static MessageProperty to = valueOf("to");
-    public static MessageProperty cc = valueOf("cc");
-    public static MessageProperty bcc = valueOf("bcc");
-    public static MessageProperty replyTo = valueOf("replyTo");
-    public static MessageProperty subject = valueOf("subject");
-    public static MessageProperty date = valueOf("date");
-    public static MessageProperty size = valueOf("size");
-    public static MessageProperty preview = valueOf("preview");
-    public static MessageProperty textBody = valueOf("textBody");
-    public static MessageProperty htmlBody = valueOf("htmlBody");
-    public static MessageProperty attachments = valueOf("attachments");
-    public static MessageProperty attachedMessages = 
valueOf("attachedMessages");
-    public static MessageProperty body = valueOf("body");
+    id("id"),
+    blobId("blobId"),
+    threadId("threadId"),
+    mailboxIds("mailboxIds"),
+    inReplyToMessageId("inReplyToMessageId"),
+    isUnread("isUnread"),
+    isFlagged("isFlagged"),
+    isAnswered("isAnswered"),
+    isDraft("isDraft"),
+    hasAttachment("hasAttachment"),
+    headers("headers"),
+    from("from"),
+    to("to"),
+    cc("cc"),
+    bcc("bcc"),
+    replyTo("replyTo"),
+    subject("subject"),
+    date("date"),
+    size("size"),
+    preview("preview"),
+    textBody("textBody"),
+    htmlBody("htmlBody"),
+    attachments("attachments"),
+    attachedMessages("attachedMessages"),
+    body("body");
 
     private final String property;
 
@@ -56,32 +57,13 @@ public class MessageProperty implements Property {
         this.property = property;
     }
 
-    public static MessageProperty valueOf(String property) {
-        Preconditions.checkNotNull(property);
-        return new MessageProperty(property);
-    }
-
     @Override
     public String asFieldName() {
         return property;
     }
 
-    @Override
-    public boolean equals(Object obj) {
-        if (obj instanceof MessageProperty) {
-            MessageProperty other = (MessageProperty) obj;
-            return Objects.equals(this.property, other.property);
-        }
-        return false;
-    }
-
-    @Override
-    public int hashCode() {
-        return Objects.hash(property);
-    }
-
-    @Override
-    public String toString() {
-        return Objects.toString(property);
+    public static Stream<MessageProperty> find(String property) {
+        Preconditions.checkNotNull(property);
+        return Arrays.stream(values()).filter(entry -> 
entry.property.equals(property));
     }
 }

http://git-wip-us.apache.org/repos/asf/james-project/blob/8c192080/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MessagePropertyTest.java
----------------------------------------------------------------------
diff --git 
a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MessagePropertyTest.java
 
b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MessagePropertyTest.java
index 37a874e..f9157f4 100644
--- 
a/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MessagePropertyTest.java
+++ 
b/server/protocols/jmap/src/test/java/org/apache/james/jmap/model/MessagePropertyTest.java
@@ -18,34 +18,26 @@
  ****************************************************************/
 package org.apache.james.jmap.model;
 
+import static org.assertj.core.api.Assertions.assertThatThrownBy;
 import static org.assertj.core.api.Assertions.assertThat;
 
 import org.junit.Test;
 
 public class MessagePropertyTest {
     
-    @Test(expected=NullPointerException.class)
-    public void valueOfShouldThrowWhenNull() {
-        MessageProperty.valueOf(null);
-    }
-    
-    @Test
-    public void valueOfThenAsFieldNameShouldReturnMatchingCaseProperty() {
-        
assertThat(MessageProperty.valueOf("ProP").asFieldName()).isEqualTo("ProP");
-    }
-    
     @Test
-    public void equalsShouldBeTrueWhenIdenticalProperties() {
-        
assertThat(MessageProperty.valueOf("prop")).isEqualTo(MessageProperty.valueOf("prop"));
+    public void findShouldThrowWhenNull() {
+        assertThatThrownBy(() -> 
MessageProperty.find(null)).isInstanceOf(NullPointerException.class);
     }
 
+    
     @Test
-    public void equalsShouldBeFalseWhenDifferentProperties() {
-        
assertThat(MessageProperty.valueOf("prop")).isNotEqualTo(MessageProperty.valueOf("other"));
+    public void findShouldReturnEmptyWhenNotFound() {
+        assertThat(MessageProperty.find("not found")).isEmpty();
     }
-
+    
     @Test
-    public void equalsShouldBeFalseWhenDifferentCaseProperties() {
-        
assertThat(MessageProperty.valueOf("prOP")).isNotEqualTo(MessageProperty.valueOf("PRop"));
+    public void findShouldReturnEnumEntryWhenFound() {
+        
assertThat(MessageProperty.find("subject")).containsExactly(MessageProperty.subject);
     }
 }


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

Reply via email to