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