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 no...@apache.org on 2011/04/28 12:29:39 UTC

svn commit: r1097402 [3/3] - in /james/mailbox/trunk: jcr/src/main/java/org/apache/james/mailbox/jcr/ jcr/src/main/java/org/apache/james/mailbox/jcr/mail/ jcr/src/main/java/org/apache/james/mailbox/jcr/mail/model/ jpa/ jpa/src/main/java/org/apache/jame...

Modified: james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/SearchUtilsTest.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/SearchUtilsTest.java?rev=1097402&r1=1097401&r2=1097402&view=diff
==============================================================================
--- james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/SearchUtilsTest.java (original)
+++ james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/SearchUtilsTest.java Thu Apr 28 10:29:38 2011
@@ -33,7 +33,7 @@ import javax.mail.Flags;
 import org.apache.james.mailbox.SearchQuery;
 import org.apache.james.mailbox.SearchQuery.DateResolution;
 import org.apache.james.mailbox.store.MessageSearches;
-import org.apache.james.mailbox.store.mail.model.MailboxMembership;
+import org.apache.james.mailbox.store.mail.model.Message;
 import org.junit.Before;
 import org.junit.Test;
 
@@ -81,7 +81,7 @@ public class SearchUtilsTest {
     @Test
     public void testMatchSizeLessThan() throws Exception {
         builder.size = SIZE;
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertFalse(searches.isMatch(SearchQuery.sizeLessThan(SIZE - 1), row,
                 recent));
         assertFalse(searches.isMatch(SearchQuery.sizeLessThan(SIZE), row,
@@ -95,7 +95,7 @@ public class SearchUtilsTest {
     @Test
     public void testMatchSizeMoreThan() throws Exception {
         builder.size = SIZE;
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertTrue(searches.isMatch(SearchQuery.sizeGreaterThan(SIZE - 1), row,
                 recent));
         assertFalse(searches.isMatch(SearchQuery.sizeGreaterThan(SIZE), row,
@@ -109,7 +109,7 @@ public class SearchUtilsTest {
     @Test
     public void testMatchSizeEquals() throws Exception {
         builder.size = SIZE;
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertFalse(searches.isMatch(SearchQuery.sizeEquals(SIZE - 1), row,
                 recent));
         assertTrue(searches.isMatch(SearchQuery.sizeEquals(SIZE), row, recent));
@@ -122,7 +122,7 @@ public class SearchUtilsTest {
     @Test
     public void testMatchInternalDateEquals() throws Exception {
         builder.internalDate = SUN_SEP_9TH_2001;
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertFalse(searches.isMatch(SearchQuery.internalDateOn(getDate(9, 9, 2000), DateResolution.Day),
                 row, recent));
         assertFalse(searches.isMatch(SearchQuery.internalDateOn(getDate(8, 9, 2001), DateResolution.Day),
@@ -139,7 +139,7 @@ public class SearchUtilsTest {
     @Test
     public void testMatchInternalDateBefore() throws Exception {
         builder.internalDate = SUN_SEP_9TH_2001;
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertFalse(searches.isMatch(
                 SearchQuery.internalDateBefore(getDate(9, 9, 2000), DateResolution.Day), row, recent));
         assertFalse(searches.isMatch(
@@ -155,7 +155,7 @@ public class SearchUtilsTest {
     @Test
     public void testMatchInternalDateAfter() throws Exception {
         builder.internalDate = SUN_SEP_9TH_2001;
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertTrue(searches.isMatch(SearchQuery.internalDateAfter(getDate(9, 9, 2000), DateResolution.Day),
                 row, recent));
         assertTrue(searches.isMatch(SearchQuery.internalDateAfter(getDate(8, 9, 2001), DateResolution.Day),
@@ -171,7 +171,7 @@ public class SearchUtilsTest {
     @Test
     public void testMatchHeaderDateAfter() throws Exception {
         builder.header(DATE_FIELD, RFC822_SUN_SEP_9TH_2001);
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertTrue(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD, getDate(9,
                 9, 2000), DateResolution.Day), row, recent));
         assertTrue(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD, getDate(8,
@@ -189,7 +189,7 @@ public class SearchUtilsTest {
     @Test
     public void testShouldMatchCapsHeaderDateAfter() throws Exception {
         builder.header(DATE_FIELD.toUpperCase(), RFC822_SUN_SEP_9TH_2001);
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertTrue(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD, getDate(9,
                 9, 2000), DateResolution.Day), row, recent));
         assertTrue(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD, getDate(8,
@@ -207,7 +207,7 @@ public class SearchUtilsTest {
     @Test
     public void testShouldMatchLowersHeaderDateAfter() throws Exception {
         builder.header(DATE_FIELD.toLowerCase(), RFC822_SUN_SEP_9TH_2001);
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertTrue(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD, getDate(9,
                 9, 2000), DateResolution.Day), row, recent));
         assertTrue(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD, getDate(8,
@@ -225,7 +225,7 @@ public class SearchUtilsTest {
     @Test
     public void testMatchHeaderDateOn() throws Exception {
         builder.header(DATE_FIELD, RFC822_SUN_SEP_9TH_2001);
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD, getDate(9, 9,
                 2000), DateResolution.Day),row, recent));
         assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD, getDate(8, 9,
@@ -243,7 +243,7 @@ public class SearchUtilsTest {
     @Test
     public void testShouldMatchCapsHeaderDateOn() throws Exception {
         builder.header(DATE_FIELD.toUpperCase(), RFC822_SUN_SEP_9TH_2001);
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD, getDate(9, 9,
                 2000), DateResolution.Day),row, recent));
         assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD, getDate(8, 9,
@@ -261,7 +261,7 @@ public class SearchUtilsTest {
     @Test
     public void testShouldMatchLowersHeaderDateOn() throws Exception {
         builder.header(DATE_FIELD.toLowerCase(), RFC822_SUN_SEP_9TH_2001);
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD, getDate(9, 9,
                 2000), DateResolution.Day),row, recent));
         assertFalse(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD, getDate(8, 9,
@@ -279,7 +279,7 @@ public class SearchUtilsTest {
     @Test
     public void testMatchHeaderDateBefore() throws Exception {
         builder.header(DATE_FIELD.toLowerCase(), RFC822_SUN_SEP_9TH_2001);
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,
                 getDate(9, 9, 2000), DateResolution.Day),row, recent));
         assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,
@@ -297,7 +297,7 @@ public class SearchUtilsTest {
     @Test
     public void testShouldMatchCapsHeaderDateBefore() throws Exception {
         builder.header(DATE_FIELD.toLowerCase(), RFC822_SUN_SEP_9TH_2001);
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,
                 getDate(9, 9, 2000), DateResolution.Day),row, recent));
         assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,
@@ -315,7 +315,7 @@ public class SearchUtilsTest {
     @Test
     public void testShouldMatchLowersHeaderDateBefore() throws Exception {
         builder.header(DATE_FIELD.toLowerCase(), RFC822_SUN_SEP_9TH_2001);
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,
                 getDate(9, 9, 2000), DateResolution.Day),row, recent));
         assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD,
@@ -333,7 +333,7 @@ public class SearchUtilsTest {
     @Test
     public void testMatchHeaderContainsCaps() throws Exception {
         builder.header(SUBJECT_FIELD, TEXT.toUpperCase());
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD,
                 CUSTARD), row, recent));
         assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD,
@@ -349,7 +349,7 @@ public class SearchUtilsTest {
     @Test
     public void testMatchHeaderContainsLowers() throws Exception {
         builder.header(SUBJECT_FIELD, TEXT.toUpperCase());
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD,
                 CUSTARD), row, recent));
         assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD,
@@ -365,7 +365,7 @@ public class SearchUtilsTest {
     @Test
     public void testMatchHeaderContains() throws Exception {
         builder.header(SUBJECT_FIELD, TEXT.toUpperCase());
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD,
                 CUSTARD), row, recent));
         assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD,
@@ -381,7 +381,7 @@ public class SearchUtilsTest {
     @Test
     public void testShouldMatchLowerHeaderContains() throws Exception {
         builder.header(SUBJECT_FIELD.toLowerCase(), TEXT);
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD,
                 CUSTARD), row, recent));
         assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD,
@@ -397,7 +397,7 @@ public class SearchUtilsTest {
     @Test
     public void testShouldMatchCapsHeaderContains() throws Exception {
         builder.header(SUBJECT_FIELD.toUpperCase(), TEXT);
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD,
                 CUSTARD), row, recent));
         assertFalse(searches.isMatch(SearchQuery.headerContains(DATE_FIELD,
@@ -413,7 +413,7 @@ public class SearchUtilsTest {
     @Test
     public void testMatchHeaderExists() throws Exception {
         builder.header(SUBJECT_FIELD, TEXT);
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertFalse(searches.isMatch(SearchQuery.headerExists(DATE_FIELD), row,
                 recent));
         assertTrue(searches.isMatch(SearchQuery.headerExists(SUBJECT_FIELD),
@@ -423,7 +423,7 @@ public class SearchUtilsTest {
     @Test
     public void testShouldMatchLowersHeaderExists() throws Exception {
         builder.header(SUBJECT_FIELD.toLowerCase(), TEXT);
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertFalse(searches.isMatch(SearchQuery.headerExists(DATE_FIELD), row,
                 recent));
         assertTrue(searches.isMatch(SearchQuery.headerExists(SUBJECT_FIELD),
@@ -433,7 +433,7 @@ public class SearchUtilsTest {
     @Test
     public void testShouldMatchUppersHeaderExists() throws Exception {
         builder.header(SUBJECT_FIELD.toLowerCase(), TEXT);
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertFalse(searches.isMatch(SearchQuery.headerExists(DATE_FIELD), row,
                 recent));
         assertTrue(searches.isMatch(SearchQuery.headerExists(SUBJECT_FIELD),
@@ -443,7 +443,7 @@ public class SearchUtilsTest {
     @Test
     public void testShouldMatchUidRange() throws Exception {
         builder.setKey(1, 1729);
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertFalse(searches.isMatch(SearchQuery.uid(range(1, 1)), row, recent));
         assertFalse(searches.isMatch(SearchQuery.uid(range(1728, 1728)), row,
                 recent));
@@ -474,7 +474,7 @@ public class SearchUtilsTest {
     @Test
     public void testShouldMatchSeenFlagSet() throws Exception {
         builder.setFlags(true, false, false, false, false, false);
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertTrue(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.SEEN),
                 row, recent));
         assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.FLAGGED),
@@ -492,7 +492,7 @@ public class SearchUtilsTest {
     @Test
     public void testShouldMatchAnsweredFlagSet() throws Exception {
         builder.setFlags(false, false, true, false, false, false);
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.SEEN),
                 row, recent));
         assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.FLAGGED),
@@ -510,7 +510,7 @@ public class SearchUtilsTest {
     @Test
     public void testShouldMatchFlaggedFlagSet() throws Exception {
         builder.setFlags(false, true, false, false, false, false);
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.SEEN),
                 row, recent));
         assertTrue(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.FLAGGED),
@@ -528,7 +528,7 @@ public class SearchUtilsTest {
     @Test
     public void testShouldMatchDraftFlagSet() throws Exception {
         builder.setFlags(false, false, false, true, false, false);
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.SEEN),
                 row, recent));
         assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.FLAGGED),
@@ -547,7 +547,7 @@ public class SearchUtilsTest {
     @Test
     public void testShouldMatchDeletedFlagSet() throws Exception {
         builder.setFlags(false, false, false, false, true, false);
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.SEEN),
                 row, recent));
         assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.FLAGGED),
@@ -565,7 +565,7 @@ public class SearchUtilsTest {
     @Test
     public void testShouldMatchSeenRecentSet() throws Exception {
         builder.setFlags(false, false, false, false, false, false);
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         recent.add(new Long(row.getUid()));
         assertFalse(searches.isMatch(SearchQuery.flagIsSet(Flags.Flag.SEEN),
                 row, recent));
@@ -584,7 +584,7 @@ public class SearchUtilsTest {
     @Test
     public void testShouldMatchSeenFlagUnSet() throws Exception {
         builder.setFlags(false, true, true, true, true, true);
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         recent.add(new Long(row.getUid()));
         assertTrue(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.SEEN),
                 row, recent));
@@ -603,7 +603,7 @@ public class SearchUtilsTest {
     @Test
     public void testShouldMatchAnsweredFlagUnSet() throws Exception {
         builder.setFlags(true, true, false, true, true, true);
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         recent.add(new Long(row.getUid()));
         assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.SEEN),
                 row, recent));
@@ -622,7 +622,7 @@ public class SearchUtilsTest {
     @Test
     public void testShouldMatchFlaggedFlagUnSet() throws Exception {
         builder.setFlags(true, false, true, true, true, true);
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         recent.add(new Long(row.getUid()));
         assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.SEEN),
                 row, recent));
@@ -641,7 +641,7 @@ public class SearchUtilsTest {
     @Test
     public void testShouldMatchDraftFlagUnSet() throws Exception {
         builder.setFlags(true, true, true, false, true, true);
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         recent.add(new Long(row.getUid()));
         assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.SEEN),
                 row, recent));
@@ -660,7 +660,7 @@ public class SearchUtilsTest {
     @Test
     public void testShouldMatchDeletedFlagUnSet() throws Exception {
         builder.setFlags(true, true, true, true, false, true);
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         recent.add(new Long(row.getUid()));
         assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.SEEN),
                 row, recent));
@@ -679,7 +679,7 @@ public class SearchUtilsTest {
     @Test
     public void testShouldMatchSeenRecentUnSet() throws Exception {
         builder.setFlags(true, true, true, true, true, true);
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         recent.add(new Long(row.getUid() + 1));
         assertFalse(searches.isMatch(SearchQuery.flagIsUnSet(Flags.Flag.SEEN),
                 row, recent));
@@ -697,13 +697,13 @@ public class SearchUtilsTest {
 
     @Test
     public void testShouldMatchAll() throws Exception {
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertTrue(searches.isMatch(SearchQuery.all(), row, recent));
     }
 
     @Test
     public void testShouldMatchNot() throws Exception {
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertFalse(searches.isMatch(SearchQuery.not(SearchQuery.all()), row,
                 recent));
         assertTrue(searches.isMatch(SearchQuery.not(SearchQuery
@@ -712,7 +712,7 @@ public class SearchUtilsTest {
 
     @Test
     public void testShouldMatchOr() throws Exception {
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertTrue(searches.isMatch(SearchQuery.or(SearchQuery.all(),
                 SearchQuery.headerExists(DATE_FIELD)), row, recent));
         assertTrue(searches.isMatch(SearchQuery.or(SearchQuery
@@ -726,7 +726,7 @@ public class SearchUtilsTest {
 
     @Test
     public void testShouldMatchAnd() throws Exception {
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertFalse(searches.isMatch(SearchQuery.and(SearchQuery.all(),
                 SearchQuery.headerExists(DATE_FIELD)), row, recent));
         assertFalse(searches.isMatch(SearchQuery.and(SearchQuery
@@ -756,7 +756,7 @@ public class SearchUtilsTest {
     @Test
     public void testMatchHeaderDateOnWithOffset() throws Exception {
         builder.header(DATE_FIELD, "Mon, 26 Mar 2007 00:00:00 +0300");
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertTrue(searches.isMatch(SearchQuery.headerDateOn(DATE_FIELD, getDate(26, 3,
                 2007), DateResolution.Day),row, recent));
         
@@ -770,7 +770,7 @@ public class SearchUtilsTest {
     @Test
     public void testShouldMatchHeaderDateBeforeWithOffset() throws Exception {
         builder.header(DATE_FIELD, "Mon, 26 Mar 2007 00:00:00 +0300");
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertFalse(searches.isMatch(SearchQuery.headerDateBefore(DATE_FIELD, getDate(26, 3,
                 2007), DateResolution.Day),row, recent));
         
@@ -783,7 +783,7 @@ public class SearchUtilsTest {
     @Test
     public void testShouldMatchHeaderDateAfterWithOffset() throws Exception {
         builder.header(DATE_FIELD, "Mon, 26 Mar 2007 00:00:00 +0300");
-        MailboxMembership<Long> row = builder.build();
+        Message<Long> row = builder.build();
         assertFalse(searches.isMatch(SearchQuery.headerDateAfter(DATE_FIELD, getDate(26, 3,
                 2007), DateResolution.Day),row, recent));
         

Modified: james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/SimpleMailboxMembership.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/SimpleMailboxMembership.java?rev=1097402&r1=1097401&r2=1097402&view=diff
==============================================================================
--- james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/SimpleMailboxMembership.java (original)
+++ james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/SimpleMailboxMembership.java Thu Apr 28 10:29:38 2011
@@ -18,30 +18,35 @@
  ****************************************************************/
 package org.apache.james.mailbox.store;
 
+import java.io.ByteArrayInputStream;
+import java.io.ByteArrayOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStreamWriter;
+import java.io.Writer;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
 import javax.mail.Flags;
 
-import org.apache.james.mailbox.store.mail.model.MailboxMembership;
+import org.apache.james.mailbox.store.mail.model.Header;
 import org.apache.james.mailbox.store.mail.model.Message;
+import org.apache.james.mailbox.store.mail.model.Property;
 
-public class SimpleMailboxMembership implements MailboxMembership<Long> {
+public class SimpleMailboxMembership implements Message<Long> {
     
     private static final String TOSTRING_SEPARATOR = " ";
     
     public long mailboxId;
     public long uid;
     public Date internalDate;
-    public int size = 0;
     public boolean recent = false;
     public boolean answered = false;
     public boolean deleted = false;
     public boolean draft = false;
     public boolean flagged = false;
     public boolean seen = false;
-    public SimpleMessage message;
 
     public SimpleMailboxMembership(long mailboxId, long uid, Date internalDate, int size, 
             Flags flags, byte[] body, final List<SimpleHeader> headers) throws Exception {
@@ -50,7 +55,30 @@ public class SimpleMailboxMembership imp
         this.uid = uid;
         this.internalDate = internalDate;
         this.size = size;
-        this.message = new SimpleMessage(body, size, new ArrayList<SimpleHeader>(headers));
+        this.body = body;
+        final List<SimpleHeader> originalHeaders = headers;
+        if (originalHeaders == null) {
+            this.headers = new ArrayList<SimpleHeader>();
+        } else {
+            this.headers = new ArrayList<SimpleHeader>(originalHeaders.size());
+            for (SimpleHeader header:originalHeaders) {
+                this.headers.add(new SimpleHeader(header));
+            }
+        }
+        
+        final ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        final Writer writer = new OutputStreamWriter(baos, "us-ascii");
+        for (SimpleHeader header:headers) {
+            writer.write(header.getFieldName());
+            writer.write(": ");
+            writer.write(header.getValue());
+            writer.write(NEW_LINE);
+        }
+        writer.write(NEW_LINE);
+        writer.flush();
+        baos.write(body);
+        baos.flush();
+        fullContent = baos.toByteArray();
         setFlags(flags);
     }
 
@@ -72,7 +100,17 @@ public class SimpleMailboxMembership imp
         this.flagged = original.isFlagged();
         this.recent = original.isRecent();
         this.seen = original.isSeen();
-        this.message = new SimpleMessage(original.message);
+        this.body = original.body;
+        this.fullContent = original.fullContent;
+        final List<SimpleHeader> originalHeaders = original.headers;
+        if (originalHeaders == null) {
+            this.headers = new ArrayList<SimpleHeader>();
+        } else {
+            this.headers = new ArrayList<SimpleHeader>(originalHeaders.size());
+            for (SimpleHeader header:originalHeaders) {
+                this.headers.add(new SimpleHeader(header));
+            }
+        }
     }
 
     /**
@@ -202,7 +240,7 @@ public class SimpleMailboxMembership imp
             return false;
         if (getClass() != obj.getClass())
             return false;
-        final MailboxMembership<Long> other = (MailboxMembership<Long>) obj;
+        final Message<Long> other = (Message<Long>) obj;
         if (mailboxId != other.getMailboxId())
             return false;
         if (uid != other.getUid())
@@ -229,8 +267,66 @@ public class SimpleMailboxMembership imp
         return retValue;
     }
 
-    public Message getMessage() {
-        return message;
+    
+    public static final char[] NEW_LINE = { 0x0D, 0x0A };
+    
+    public byte[] body;
+    public byte[] fullContent;
+    public List<SimpleHeader> headers;
+    public List<SimpleProperty> properties;
+    public String subType = null;
+    public String mediaType = null;
+    public Long textualLineCount = null;
+
+    private int size;
+    
+
+    /**
+     * @throws IOException 
+     * @see org.apache.james.imap.Message.mail.model.Document#getBodyContent()
+     */
+    public InputStream getBodyContent() throws IOException {
+        return new ByteArrayInputStream(body);
+    }
+
+    /**
+     * Gets the full content (including headers) of the document.
+     * @return read only buffer, not null
+     * @throws IOException 
+     */
+    public InputStream getFullContent() throws IOException {
+        return new ByteArrayInputStream(fullContent);
+    }
+    
+    /**
+     * @see org.apache.james.imap.Message.mail.model.Document#getHeaders()
+     */
+    public List<Header> getHeaders() {
+        return new ArrayList<Header>(headers);
+    }
+
+    public long getBodyOctets() {
+        return body.length;
+    }
+
+    public String getSubType() {
+        return subType;
+    }
+
+    public String getMediaType() {
+        return mediaType;
+    }
+
+    public List<Property> getProperties() {
+        return new ArrayList<Property>(properties);
+    }
+
+    public Long getTextualLineCount() {
+        return textualLineCount;
+    }
+
+    public long getFullContentOctets() {
+        return size;
     }
 
 }



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