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 [2/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/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java?rev=1097402&r1=1097401&r2=1097402&view=diff
==============================================================================
--- james/mailbox/trunk/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java (original)
+++ james/mailbox/trunk/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMessageMapper.java Thu Apr 28 10:29:38 2011
@@ -34,23 +34,23 @@ import org.apache.james.mailbox.UpdatedF
import org.apache.james.mailbox.inmemory.mail.model.SimpleMailboxMembership;
import org.apache.james.mailbox.store.mail.MessageMapper;
import org.apache.james.mailbox.store.mail.model.Mailbox;
-import org.apache.james.mailbox.store.mail.model.MailboxMembership;
-import org.apache.james.mailbox.store.mail.model.MailboxMembershipComparator;
+import org.apache.james.mailbox.store.mail.model.Message;
+import org.apache.james.mailbox.store.mail.model.MessageComparator;
import org.apache.james.mailbox.store.transaction.NonTransactionalMapper;
public class InMemoryMessageMapper extends NonTransactionalMapper implements MessageMapper<Long> {
- private Map<Long, Map<Long, MailboxMembership<Long>>> mailboxByUid;
+ private Map<Long, Map<Long, Message<Long>>> mailboxByUid;
private static final int INITIAL_SIZE = 256;
public InMemoryMessageMapper() {
- this.mailboxByUid = new ConcurrentHashMap<Long, Map<Long, MailboxMembership<Long>>>(INITIAL_SIZE);
+ this.mailboxByUid = new ConcurrentHashMap<Long, Map<Long, Message<Long>>>(INITIAL_SIZE);
}
- private Map<Long, MailboxMembership<Long>> getMembershipByUidForMailbox(Mailbox<Long> mailbox) {
- Map<Long, MailboxMembership<Long>> membershipByUid = mailboxByUid.get(mailbox.getMailboxId());
+ private Map<Long, Message<Long>> getMembershipByUidForMailbox(Mailbox<Long> mailbox) {
+ Map<Long, Message<Long>> membershipByUid = mailboxByUid.get(mailbox.getMailboxId());
if (membershipByUid == null) {
- membershipByUid = new ConcurrentHashMap<Long, MailboxMembership<Long>>(INITIAL_SIZE);
+ membershipByUid = new ConcurrentHashMap<Long, Message<Long>>(INITIAL_SIZE);
mailboxByUid.put(mailbox.getMailboxId(), membershipByUid);
}
return membershipByUid;
@@ -70,7 +70,7 @@ public class InMemoryMessageMapper exten
*/
public long countUnseenMessagesInMailbox(Mailbox<Long> mailbox) throws MailboxException {
long count = 0;
- for(MailboxMembership<Long> member:getMembershipByUidForMailbox(mailbox).values()) {
+ for(Message<Long> member:getMembershipByUidForMailbox(mailbox).values()) {
if (!member.isSeen()) {
count++;
}
@@ -82,7 +82,7 @@ public class InMemoryMessageMapper exten
* (non-Javadoc)
* @see org.apache.james.mailbox.store.mail.MessageMapper#delete(org.apache.james.mailbox.store.mail.model.MailboxMembership)
*/
- public void delete(Mailbox<Long> mailbox, MailboxMembership<Long> message) throws MailboxException {
+ public void delete(Mailbox<Long> mailbox, Message<Long> message) throws MailboxException {
getMembershipByUidForMailbox(mailbox).remove(message.getUid());
}
@@ -92,24 +92,24 @@ public class InMemoryMessageMapper exten
*/
@SuppressWarnings("unchecked")
public void findInMailbox(Mailbox<Long> mailbox, MessageRange set, MailboxMembershipCallback<Long> callback) throws MailboxException {
- final List<MailboxMembership<Long>> results;
+ final List<Message<Long>> results;
final int batchSize = set.getBatchSize();
final MessageRange.Type type = set.getType();
switch (type) {
case ALL:
- results = new ArrayList<MailboxMembership<Long>>(getMembershipByUidForMailbox(mailbox).values());
+ results = new ArrayList<Message<Long>>(getMembershipByUidForMailbox(mailbox).values());
break;
case FROM:
- results = new ArrayList<MailboxMembership<Long>>(getMembershipByUidForMailbox(mailbox).values());
- for (final Iterator<MailboxMembership<Long>> it=results.iterator();it.hasNext();) {
+ results = new ArrayList<Message<Long>>(getMembershipByUidForMailbox(mailbox).values());
+ for (final Iterator<Message<Long>> it=results.iterator();it.hasNext();) {
if (it.next().getUid()< set.getUidFrom()) {
it.remove();
}
}
break;
case RANGE:
- results = new ArrayList<MailboxMembership<Long>>(getMembershipByUidForMailbox(mailbox).values());
- for (final Iterator<MailboxMembership<Long>> it=results.iterator();it.hasNext();) {
+ results = new ArrayList<Message<Long>>(getMembershipByUidForMailbox(mailbox).values());
+ for (final Iterator<Message<Long>> it=results.iterator();it.hasNext();) {
final long uid = it.next().getUid();
if (uid<set.getUidFrom() || uid>set.getUidTo()) {
it.remove();
@@ -117,17 +117,17 @@ public class InMemoryMessageMapper exten
}
break;
case ONE:
- results = new ArrayList<MailboxMembership<Long>>(1);
- final MailboxMembership member = getMembershipByUidForMailbox(mailbox).get(set.getUidFrom());
+ results = new ArrayList<Message<Long>>(1);
+ final Message member = getMembershipByUidForMailbox(mailbox).get(set.getUidFrom());
if (member != null) {
results.add(member);
}
break;
default:
- results = new ArrayList<MailboxMembership<Long>>();
+ results = new ArrayList<Message<Long>>();
break;
}
- Collections.sort(results, MailboxMembershipComparator.INSTANCE);
+ Collections.sort(results, MessageComparator.INSTANCE);
if(batchSize > 0) {
int i = 0;
@@ -150,9 +150,9 @@ public class InMemoryMessageMapper exten
findInMailbox(mailbox, set, new MailboxMembershipCallback<Long>() {
- public void onMailboxMembers(List<MailboxMembership<Long>> results) throws MailboxException {
- for (final Iterator<MailboxMembership<Long>> it = results.iterator(); it.hasNext();) {
- MailboxMembership<Long> member = it.next();
+ public void onMailboxMembers(List<Message<Long>> results) throws MailboxException {
+ for (final Iterator<Message<Long>> it = results.iterator(); it.hasNext();) {
+ Message<Long> member = it.next();
if (member.isDeleted()) {
delete(mailbox, member);
filteredResult.add(member.getUid());
@@ -168,14 +168,14 @@ public class InMemoryMessageMapper exten
* (non-Javadoc)
* @see org.apache.james.mailbox.store.mail.MessageMapper#findRecentMessagesInMailbox()
*/
- public List<MailboxMembership<Long>> findRecentMessagesInMailbox(Mailbox<Long> mailbox) throws MailboxException {
- final List<MailboxMembership<Long>> results = new ArrayList<MailboxMembership<Long>>();
- for(MailboxMembership<Long> member:getMembershipByUidForMailbox(mailbox).values()) {
+ public List<Message<Long>> findRecentMessagesInMailbox(Mailbox<Long> mailbox) throws MailboxException {
+ final List<Message<Long>> results = new ArrayList<Message<Long>>();
+ for(Message<Long> member:getMembershipByUidForMailbox(mailbox).values()) {
if (member.isRecent()) {
results.add(member);
}
}
- Collections.sort(results, MailboxMembershipComparator.INSTANCE);
+ Collections.sort(results, MessageComparator.INSTANCE);
return results;
}
@@ -185,10 +185,10 @@ public class InMemoryMessageMapper exten
* @see org.apache.james.mailbox.store.mail.MessageMapper#findFirstUnseenMessageUid(org.apache.james.mailbox.store.mail.model.Mailbox)
*/
public Long findFirstUnseenMessageUid(Mailbox<Long> mailbox) throws MailboxException {
- List<MailboxMembership<Long>> memberships = new ArrayList<MailboxMembership<Long>>(getMembershipByUidForMailbox(mailbox).values());
- Collections.sort(memberships, MailboxMembershipComparator.INSTANCE);
+ List<Message<Long>> memberships = new ArrayList<Message<Long>>(getMembershipByUidForMailbox(mailbox).values());
+ Collections.sort(memberships, MessageComparator.INSTANCE);
for (int i = 0; i < memberships.size(); i++) {
- MailboxMembership<Long> m = memberships.get(i);
+ Message<Long> m = memberships.get(i);
if (m.isSeen() == false) {
return m.getUid();
}
@@ -200,7 +200,7 @@ public class InMemoryMessageMapper exten
* (non-Javadoc)
* @see org.apache.james.mailbox.store.mail.MessageMapper#save(org.apache.james.mailbox.store.mail.model.MailboxMembership)
*/
- public long add(Mailbox<Long> mailbox, MailboxMembership<Long> message) throws MailboxException {
+ public long add(Mailbox<Long> mailbox, Message<Long> message) throws MailboxException {
getMembershipByUidForMailbox(mailbox).put(message.getUid(), message);
return message.getUid();
}
@@ -222,7 +222,7 @@ public class InMemoryMessageMapper exten
* (non-Javadoc)
* @see org.apache.james.mailbox.store.mail.MessageMapper#copy(org.apache.james.mailbox.store.mail.model.Mailbox, org.apache.james.mailbox.store.mail.model.MailboxMembership)
*/
- public long copy(Mailbox<Long> mailbox, long uid, MailboxMembership<Long> original) throws MailboxException {
+ public long copy(Mailbox<Long> mailbox, long uid, Message<Long> original) throws MailboxException {
SimpleMailboxMembership membership = new SimpleMailboxMembership(mailbox.getMailboxId(), uid, (SimpleMailboxMembership) original);
return add(mailbox, membership);
}
@@ -232,9 +232,9 @@ public class InMemoryMessageMapper exten
findInMailbox(mailbox, set, new MailboxMembershipCallback<Long>() {
- public void onMailboxMembers(List<MailboxMembership<Long>> members)
+ public void onMailboxMembers(List<Message<Long>> members)
throws MailboxException {
- for (final MailboxMembership<Long> member:members) {
+ for (final Message<Long> member:members) {
Flags originalFlags = member.createFlags();
if (replace) {
member.setFlags(flags);
Modified: james/mailbox/trunk/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/model/SimpleMailboxMembership.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/model/SimpleMailboxMembership.java?rev=1097402&r1=1097401&r2=1097402&view=diff
==============================================================================
--- james/mailbox/trunk/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/model/SimpleMailboxMembership.java (original)
+++ james/mailbox/trunk/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/model/SimpleMailboxMembership.java Thu Apr 28 10:29:38 2011
@@ -27,14 +27,12 @@ import java.util.List;
import javax.mail.Flags;
-import org.apache.james.mailbox.store.mail.model.AbstractMailboxMembership;
+import org.apache.james.mailbox.store.mail.model.AbstractMessage;
import org.apache.james.mailbox.store.mail.model.Header;
-import org.apache.james.mailbox.store.mail.model.MailboxMembership;
-import org.apache.james.mailbox.store.mail.model.Message;
import org.apache.james.mailbox.store.mail.model.Property;
import org.apache.james.mailbox.store.mail.model.PropertyBuilder;
-public class SimpleMailboxMembership extends AbstractMailboxMembership<Long> implements Message, Comparable<MailboxMembership<Long>> {
+public class SimpleMailboxMembership extends AbstractMessage<Long> {
private final long uid;
private final long mailboxId;
@@ -91,10 +89,6 @@ public class SimpleMailboxMembership ext
}
- public Message getMessage() {
- return this;
- }
-
public Date getInternalDate() {
return internalDate;
}
@@ -152,10 +146,6 @@ public class SimpleMailboxMembership ext
return new ByteArrayInputStream(document,bodyStartOctet, (int) getFullContentOctets());
}
- public long getBodyOctets() {
- return getFullContentOctets() - bodyStartOctet;
- }
-
public InputStream getFullContent() throws IOException {
return new ByteArrayInputStream(document);
}
@@ -206,11 +196,6 @@ public class SimpleMailboxMembership ext
return true;
}
- public int compareTo(MailboxMembership<Long> o) {
- final long otherUid = getUid();
- return uid < otherUid ? -1 : uid == otherUid ? 0 : 1;
- }
-
/**
* Representation suitable for logging and debugging.
*
@@ -234,6 +219,9 @@ public class SimpleMailboxMembership ext
+ "mediaType = " + this.mediaType + " "
+ " ]";
}
-
-
+
+ @Override
+ protected int getBodyStartOctet() {
+ return bodyStartOctet;
+ }
}
Modified: james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/MessageSearchIndex.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/MessageSearchIndex.java?rev=1097402&r1=1097401&r2=1097402&view=diff
==============================================================================
--- james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/MessageSearchIndex.java (original)
+++ james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/MessageSearchIndex.java Thu Apr 28 10:29:38 2011
@@ -28,18 +28,17 @@ import org.apache.james.mailbox.MailboxS
import org.apache.james.mailbox.MessageRange;
import org.apache.james.mailbox.SearchQuery;
import org.apache.james.mailbox.store.mail.model.Mailbox;
-import org.apache.james.mailbox.store.mail.model.MailboxMembership;
-
+import org.apache.james.mailbox.store.mail.model.Message;
public interface MessageSearchIndex<Id> {
/**
* Add the {@link MailboxMembership} to the search index
*
* @param mailbox
- * @param membership
+ * @param message
* @throws MailboxException
*/
- public void add(MailboxSession session, Mailbox<Id> mailbox, MailboxMembership<Id> membership) throws MailboxException;
+ public void add(MailboxSession session, Mailbox<Id> mailbox, Message<Id> message) throws MailboxException;
/**
* Update the Flags in the search index for the given {@link MessageRange}
Modified: james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/MessageSearches.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/MessageSearches.java?rev=1097402&r1=1097401&r2=1097402&view=diff
==============================================================================
--- james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/MessageSearches.java (original)
+++ james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/MessageSearches.java Thu Apr 28 10:29:38 2011
@@ -39,7 +39,7 @@ import org.apache.james.mailbox.SearchQu
import org.apache.james.mailbox.UnsupportedSearchException;
import org.apache.james.mailbox.SearchQuery.NumericRange;
import org.apache.james.mailbox.store.mail.model.Header;
-import org.apache.james.mailbox.store.mail.model.MailboxMembership;
+import org.apache.james.mailbox.store.mail.model.Message;
import org.apache.james.mime4j.MimeException;
import org.apache.james.mime4j.field.datetime.DateTime;
import org.apache.james.mime4j.field.datetime.parser.DateTimeParser;
@@ -78,7 +78,7 @@ public class MessageSearches {
* @return true if the row matches the given criteria, false otherwise
* @throws MailboxException
*/
- public boolean isMatch(final SearchQuery query, final MailboxMembership<?> message)
+ public boolean isMatch(final SearchQuery query, final Message<?> message)
throws MailboxException {
final List<SearchQuery.Criterion> criteria = query.getCriterias();
final Collection<Long> recentMessageUids = query.getRecentMessageUids();
@@ -105,7 +105,7 @@ public class MessageSearches {
* @return true if the row matches the given criterion, false otherwise
* @throws MailboxException
*/
- public boolean isMatch(SearchQuery.Criterion criterion, MailboxMembership<?> message,
+ public boolean isMatch(SearchQuery.Criterion criterion, Message<?> message,
final Collection<Long> recentMessageUids) throws MailboxException {
final boolean result;
if (criterion instanceof SearchQuery.InternalDateCriterion) {
@@ -132,7 +132,7 @@ public class MessageSearches {
return result;
}
- private boolean matches(SearchQuery.TextCriterion criterion, MailboxMembership<?> message) throws MailboxException {
+ private boolean matches(SearchQuery.TextCriterion criterion, Message<?> message) throws MailboxException {
try {
final SearchQuery.ContainsOperator operator = criterion
.getOperator();
@@ -152,9 +152,9 @@ public class MessageSearches {
}
}
- private boolean bodyContains(String value, MailboxMembership<?> message)
+ private boolean bodyContains(String value, Message<?> message)
throws IOException, MimeException {
- final InputStream input = ResultUtils.toInput(message.getMessage());
+ final InputStream input = ResultUtils.toInput(message);
final boolean result = isInMessage(value, input, false);
return result;
}
@@ -170,15 +170,15 @@ public class MessageSearches {
return result;
}
- private boolean messageContains(String value, MailboxMembership<?> message)
+ private boolean messageContains(String value, Message<?> message)
throws IOException, MimeException {
- final InputStream input = ResultUtils.toInput(message.getMessage());
+ final InputStream input = ResultUtils.toInput(message);
final boolean result = isInMessage(value, input, true);
return result;
}
private boolean matches(SearchQuery.ConjunctionCriterion criterion,
- MailboxMembership<?> message, final Collection<Long> recentMessageUids) throws MailboxException {
+ Message<?> message, final Collection<Long> recentMessageUids) throws MailboxException {
final List<SearchQuery.Criterion> criteria = criterion.getCriteria();
switch (criterion.getType()) {
case NOR:
@@ -192,7 +192,7 @@ public class MessageSearches {
}
}
- private boolean and(final List<SearchQuery.Criterion> criteria, final MailboxMembership<?> message,
+ private boolean and(final List<SearchQuery.Criterion> criteria, final Message<?> message,
final Collection<Long> recentMessageUids) throws MailboxException {
boolean result = true;
for (Iterator<SearchQuery.Criterion> it = criteria.iterator(); it.hasNext();) {
@@ -206,7 +206,7 @@ public class MessageSearches {
return result;
}
- private boolean or(final List<SearchQuery.Criterion> criteria, final MailboxMembership<?> message,
+ private boolean or(final List<SearchQuery.Criterion> criteria, final Message<?> message,
final Collection<Long> recentMessageUids) throws MailboxException {
boolean result = false;
for (Iterator<SearchQuery.Criterion> it = criteria.iterator(); it.hasNext();) {
@@ -220,7 +220,7 @@ public class MessageSearches {
return result;
}
- private boolean nor(final List<SearchQuery.Criterion> criteria, final MailboxMembership<?> message,
+ private boolean nor(final List<SearchQuery.Criterion> criteria, final Message<?> message,
final Collection<Long> recentMessageUids) throws MailboxException {
boolean result = true;
for (Iterator<SearchQuery.Criterion> it = criteria.iterator(); it.hasNext();) {
@@ -235,7 +235,7 @@ public class MessageSearches {
}
private boolean matches(SearchQuery.FlagCriterion criterion,
- MailboxMembership<?> message, final Collection<Long> recentMessageUids) {
+ Message<?> message, final Collection<Long> recentMessageUids) {
final SearchQuery.BooleanOperator operator = criterion.getOperator();
final boolean isSet = operator.isSet();
final Flags.Flag flag = criterion.getFlag();
@@ -259,7 +259,7 @@ public class MessageSearches {
return result;
}
- private boolean matches(SearchQuery.UidCriterion criterion, MailboxMembership<?> message) {
+ private boolean matches(SearchQuery.UidCriterion criterion, Message<?> message) {
final SearchQuery.InOperator operator = criterion.getOperator();
final NumericRange[] ranges = operator.getRange();
final long uid = message.getUid();
@@ -275,7 +275,7 @@ public class MessageSearches {
return result;
}
- private boolean matches(SearchQuery.HeaderCriterion criterion, MailboxMembership<?> message) throws UnsupportedSearchException {
+ private boolean matches(SearchQuery.HeaderCriterion criterion, Message<?> message) throws UnsupportedSearchException {
final SearchQuery.HeaderOperator operator = criterion.getOperator();
final String headerName = criterion.getHeaderName();
final boolean result;
@@ -291,9 +291,9 @@ public class MessageSearches {
return result;
}
- private boolean exists(String headerName, MailboxMembership<?> message) {
+ private boolean exists(String headerName, Message<?> message) {
boolean result = false;
- final List<Header> headers = message.getMessage().getHeaders();
+ final List<Header> headers = message.getHeaders();
for (Header header:headers) {
final String name = header.getFieldName();
if (headerName.equalsIgnoreCase(name)) {
@@ -305,10 +305,10 @@ public class MessageSearches {
}
private boolean matches(final SearchQuery.ContainsOperator operator,
- final String headerName, final MailboxMembership<?> message) {
+ final String headerName, final Message<?> message) {
final String text = operator.getValue().toUpperCase();
boolean result = false;
- final List<Header> headers = message.getMessage().getHeaders();
+ final List<Header> headers = message.getHeaders();
for (Header header:headers) {
final String name = header.getFieldName();
if (headerName.equalsIgnoreCase(name)) {
@@ -325,7 +325,7 @@ public class MessageSearches {
}
private boolean matches(final SearchQuery.DateOperator operator,
- final String headerName, final MailboxMembership<?> message) throws UnsupportedSearchException {
+ final String headerName, final Message<?> message) throws UnsupportedSearchException {
final Date date = operator.getDate();
final DateResolution res = operator.getDateResultion();
@@ -352,8 +352,8 @@ public class MessageSearches {
}
}
- private String headerValue(final String headerName, final MailboxMembership<?> message) {
- final List<Header> headers = message.getMessage().getHeaders();
+ private String headerValue(final String headerName, final Message<?> message) {
+ final List<Header> headers = message.getHeaders();
String value = null;
for (Header header:headers) {
final String name = header.getFieldName();
@@ -373,10 +373,10 @@ public class MessageSearches {
return cal.getTime();
}
- private boolean matches(SearchQuery.SizeCriterion criterion, MailboxMembership<?> message)
+ private boolean matches(SearchQuery.SizeCriterion criterion, Message<?> message)
throws UnsupportedSearchException {
final SearchQuery.NumericOperator operator = criterion.getOperator();
- final long size = message.getMessage().getFullContentOctets();
+ final long size = message.getFullContentOctets();
final long value = operator.getValue();
switch (operator.getType()) {
case LESS_THAN:
@@ -391,14 +391,14 @@ public class MessageSearches {
}
private boolean matches(SearchQuery.InternalDateCriterion criterion,
- MailboxMembership<?> message) throws UnsupportedSearchException {
+ Message<?> message) throws UnsupportedSearchException {
final SearchQuery.DateOperator operator = criterion.getOperator();
final boolean result = matchesInternalDate(operator, message);
return result;
}
private boolean matchesInternalDate(
- final SearchQuery.DateOperator operator, final MailboxMembership<?> message)
+ final SearchQuery.DateOperator operator, final Message<?> message)
throws UnsupportedSearchException {
final Date date = operator.getDate();
final DateResolution res = operator.getDateResultion();
Modified: james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/ResultIterator.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/ResultIterator.java?rev=1097402&r1=1097401&r2=1097402&view=diff
==============================================================================
--- james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/ResultIterator.java (original)
+++ james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/ResultIterator.java Thu Apr 28 10:29:38 2011
@@ -31,7 +31,7 @@ import org.apache.james.mailbox.MailboxE
import org.apache.james.mailbox.MessageResult;
import org.apache.james.mailbox.MimeDescriptor;
import org.apache.james.mailbox.MessageResult.FetchGroup;
-import org.apache.james.mailbox.store.mail.model.MailboxMembership;
+import org.apache.james.mailbox.store.mail.model.Message;
/**
* {@link Iterator} implementation for {@link MessageResult}
@@ -39,14 +39,14 @@ import org.apache.james.mailbox.store.ma
*/
public class ResultIterator<Id> implements Iterator<MessageResult> {
- private final Iterator<MailboxMembership<Id>> messages;
+ private final Iterator<Message<Id>> messages;
private final FetchGroup fetchGroup;
- public ResultIterator(final Iterator<MailboxMembership<Id>> messages, final FetchGroup fetchGroup) {
+ public ResultIterator(final Iterator<Message<Id>> messages, final FetchGroup fetchGroup) {
super();
if (messages == null) {
- this.messages = new ArrayList<MailboxMembership<Id>>().iterator();
+ this.messages = new ArrayList<Message<Id>>().iterator();
} else {
this.messages = messages;
}
@@ -70,7 +70,7 @@ public class ResultIterator<Id> implemen
if (hasNext() == false) {
throw new NoSuchElementException("No such element.");
}
- final MailboxMembership<Id> message = messages.next();
+ final Message<Id> message = messages.next();
MessageResult result;
try {
@@ -97,11 +97,11 @@ public class ResultIterator<Id> implemen
private final long uid;
- public UnloadedMessageResult(final MailboxMembership<Id> message,
+ public UnloadedMessageResult(final Message<Id> message,
final MailboxException exception) {
super();
internalDate = message.getInternalDate();
- size = message.getMessage().getFullContentOctets();
+ size = message.getFullContentOctets();
uid = message.getUid();
this.exception = exception;
}
Modified: james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java?rev=1097402&r1=1097401&r2=1097402&view=diff
==============================================================================
--- james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java (original)
+++ james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/ResultUtils.java Thu Apr 28 10:29:38 2011
@@ -38,7 +38,7 @@ import org.apache.james.mailbox.MessageR
import org.apache.james.mailbox.MessageResult.MimePath;
import org.apache.james.mailbox.MimeDescriptor;
import org.apache.james.mailbox.store.mail.model.Header;
-import org.apache.james.mailbox.store.mail.model.MailboxMembership;
+import org.apache.james.mailbox.store.mail.model.Message;
import org.apache.james.mailbox.store.streaming.InputStreamContent;
import org.apache.james.mailbox.store.streaming.InputStreamContent.Type;
import org.apache.james.mailbox.store.streaming.PartContentBuilder;
@@ -56,12 +56,7 @@ public class ResultUtils {
static final Charset US_ASCII = Charset.forName("US-ASCII");
- public static List<MessageResult.Header> createHeaders(MailboxMembership<?> message) {
- final org.apache.james.mailbox.store.mail.model.Message document = message.getMessage();
- return createHeaders(document);
- }
-
- public static List<MessageResult.Header> createHeaders(final org.apache.james.mailbox.store.mail.model.Message document) {
+ public static List<MessageResult.Header> createHeaders(final Message<?> document) {
final List<Header> headers = getSortedHeaders(document);
final List<MessageResult.Header> results = new ArrayList<MessageResult.Header>(headers.size());
@@ -72,7 +67,7 @@ public class ResultUtils {
return results;
}
- private static List<Header> getSortedHeaders(final org.apache.james.mailbox.store.mail.model.Message document) {
+ private static List<Header> getSortedHeaders(final Message<?> document) {
final List<Header> headers = new ArrayList<Header>(document.getHeaders());
Collections.sort(headers);
return headers;
@@ -85,8 +80,8 @@ public class ResultUtils {
* @return bodyContent
* @throws IOException
*/
- public static Content createBodyContent(MailboxMembership<?> membership) throws IOException {
- final InputStreamContent result = new InputStreamContent(membership.getMessage(), Type.Body);
+ public static Content createBodyContent(Message<?> membership) throws IOException {
+ final InputStreamContent result = new InputStreamContent(membership, Type.Body);
return result;
}
@@ -97,8 +92,8 @@ public class ResultUtils {
* @return content
* @throws IOException
*/
- public static Content createFullContent(final MailboxMembership<?> membership) throws IOException {
- final InputStreamContent result = new InputStreamContent(membership.getMessage(), Type.Full);
+ public static Content createFullContent(final Message<?> membership) throws IOException {
+ final InputStreamContent result = new InputStreamContent(membership, Type.Full);
return result;
}
@@ -110,7 +105,7 @@ public class ResultUtils {
* @return result
* @throws MailboxException
*/
- public static MessageResult loadMessageResult(final MailboxMembership<?> message, final FetchGroup fetchGroup)
+ public static MessageResult loadMessageResult(final Message<?> message, final FetchGroup fetchGroup)
throws MailboxException {
MessageResultImpl messageResult = new MessageResultImpl();
@@ -118,7 +113,7 @@ public class ResultUtils {
if (fetchGroup != null) {
int content = fetchGroup.content();
messageResult.setFlags(message.createFlags());
- messageResult.setSize((int)message.getMessage().getFullContentOctets());
+ messageResult.setSize((int)message.getFullContentOctets());
messageResult.setInternalDate(message.getInternalDate());
try {
@@ -153,31 +148,31 @@ public class ResultUtils {
return messageResult;
}
- private static void addMimeDescriptor(MailboxMembership<?> message, MessageResultImpl messageResult) throws IOException, MimeException {
- MimeDescriptor descriptor = MimeDescriptorImpl.build(message.getMessage());
+ private static void addMimeDescriptor(Message<?> message, MessageResultImpl messageResult) throws IOException, MimeException {
+ MimeDescriptor descriptor = MimeDescriptorImpl.build(message);
messageResult.setMimeDescriptor(descriptor);
}
- private static void addFullContent(final MailboxMembership<?> messageRow, MessageResultImpl messageResult) throws IOException {
+ private static void addFullContent(final Message<?> messageRow, MessageResultImpl messageResult) throws IOException {
Content content = createFullContent(messageRow);
messageResult.setFullContent(content);
}
- private static void addBody(final MailboxMembership<?> message, MessageResultImpl messageResult)throws IOException {
+ private static void addBody(final Message<?> message, MessageResultImpl messageResult)throws IOException {
final Content content = createBodyContent(message);
messageResult.setBody(content);
}
- private static void addHeaders(final MailboxMembership<?> message,
+ private static void addHeaders(final Message<?> message,
MessageResultImpl messageResult) {
final List<MessageResult.Header> headers = createHeaders(message);
messageResult.setHeaders(headers);
}
private static void addPartContent(final FetchGroup fetchGroup,
- MailboxMembership<?> message, MessageResultImpl messageResult)
+ Message<?> message, MessageResultImpl messageResult)
throws MailboxException, IOException,
MimeException {
Collection<FetchGroup.PartContentDescriptor> partContent = fetchGroup.getPartContentDescriptors();
@@ -189,7 +184,7 @@ public class ResultUtils {
}
private static void addPartContent(
- FetchGroup.PartContentDescriptor descriptor, MailboxMembership<?> message,
+ FetchGroup.PartContentDescriptor descriptor, Message<?> message,
MessageResultImpl messageResult) throws
MailboxException, IOException, MimeException {
final MimePath mimePath = descriptor.path();
@@ -211,9 +206,9 @@ public class ResultUtils {
}
}
- private static PartContentBuilder build(int[] path, final MailboxMembership<?> message)
+ private static PartContentBuilder build(int[] path, final Message<?> message)
throws IOException, MimeException {
- final InputStream stream = toInput(message.getMessage());
+ final InputStream stream = toInput(message);
PartContentBuilder result = new PartContentBuilder();
result.parse(stream);
try {
@@ -237,7 +232,7 @@ public class ResultUtils {
* @return stream
* @throws IOException
*/
- public static InputStream toInput(final org.apache.james.mailbox.store.mail.model.Message document) throws IOException {
+ public static InputStream toInput(final Message<?> document) throws IOException {
final List<Header> headers = getSortedHeaders(document);
final StringBuffer headersToString = new StringBuffer(headers.size() * 50);
for (Header header: headers) {
@@ -320,7 +315,7 @@ public class ResultUtils {
return result;
}
- private static void addHeaders(MailboxMembership<?> message,
+ private static void addHeaders(Message<?> message,
MessageResultImpl messageResult, MimePath mimePath)
throws IOException, MimeException {
final int[] path = path(mimePath);
@@ -333,7 +328,7 @@ public class ResultUtils {
}
}
- private static void addMimeHeaders(MailboxMembership<?> message,
+ private static void addMimeHeaders(Message<?> message,
MessageResultImpl messageResult, MimePath mimePath)
throws IOException, MimeException {
final int[] path = path(mimePath);
@@ -346,7 +341,7 @@ public class ResultUtils {
}
}
- private static void addBodyContent(MailboxMembership<?> message,
+ private static void addBodyContent(Message<?> message,
MessageResultImpl messageResult, MimePath mimePath) throws IOException, MimeException {
final int[] path = path(mimePath);
if (path == null) {
@@ -358,7 +353,7 @@ public class ResultUtils {
}
}
- private static void addMimeBodyContent(MailboxMembership<?> message,
+ private static void addMimeBodyContent(Message<?> message,
MessageResultImpl messageResult, MimePath mimePath)
throws IOException, MimeException {
final int[] path = path(mimePath);
@@ -367,7 +362,7 @@ public class ResultUtils {
messageResult.setMimeBodyContent(mimePath, content);
}
- private static void addFullContent(MailboxMembership<?> message,
+ private static void addFullContent(Message<?> message,
MessageResultImpl messageResult, MimePath mimePath)
throws MailboxException, IOException,
MimeException {
@@ -387,14 +382,14 @@ public class ResultUtils {
*
* @return {@link Comparator}, not null
*/
- public static Comparator<MailboxMembership<?>> getUidComparator() {
+ public static Comparator<Message<?>> getUidComparator() {
return UidComparator.INSTANCE;
}
- private static final class UidComparator implements Comparator<MailboxMembership<?>> {
+ private static final class UidComparator implements Comparator<Message<?>> {
private static final UidComparator INSTANCE = new UidComparator();
- public int compare(MailboxMembership<?> one, MailboxMembership<?> two) {
+ public int compare(Message<?> one, Message<?> two) {
final int result = (int) (one.getUid() - two.getUid());
return result;
}
Modified: james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/SearchQueryIterator.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/SearchQueryIterator.java?rev=1097402&r1=1097401&r2=1097402&view=diff
==============================================================================
--- james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/SearchQueryIterator.java (original)
+++ james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/SearchQueryIterator.java Thu Apr 28 10:29:38 2011
@@ -23,7 +23,7 @@ import java.util.NoSuchElementException;
import org.apache.james.mailbox.MailboxException;
import org.apache.james.mailbox.SearchQuery;
-import org.apache.james.mailbox.store.mail.model.MailboxMembership;
+import org.apache.james.mailbox.store.mail.model.Message;
import org.slf4j.Logger;
/**
@@ -36,15 +36,15 @@ import org.slf4j.Logger;
public final class SearchQueryIterator implements Iterator<Long>{
private final MessageSearches searches = new MessageSearches();
- private Iterator<MailboxMembership<?>> it;
+ private Iterator<Message<?>> it;
private SearchQuery query;
private Long next;
- public SearchQueryIterator(Iterator<MailboxMembership<?>> it, SearchQuery query) {
+ public SearchQueryIterator(Iterator<Message<?>> it, SearchQuery query) {
this(it, query, null);
}
- public SearchQueryIterator(Iterator<MailboxMembership<?>> it, SearchQuery query, Logger log) {
+ public SearchQueryIterator(Iterator<Message<?>> it, SearchQuery query, Logger log) {
this.it = it;
this.query = query;
if (log != null) {
@@ -61,7 +61,7 @@ public final class SearchQueryIterator i
// check if we already did the lazy loading
if (next == null) {
while (it.hasNext()) {
- MailboxMembership<?> nextMembership = it.next();
+ Message<?> nextMembership = it.next();
try {
if (searches.isMatch(query, nextMembership)) {
next = nextMembership.getUid();
Modified: james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java?rev=1097402&r1=1097401&r2=1097402&view=diff
==============================================================================
--- james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java (original)
+++ james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/StoreMessageManager.java Thu Apr 28 10:29:38 2011
@@ -54,8 +54,8 @@ import org.apache.james.mailbox.store.ma
import org.apache.james.mailbox.store.mail.UidProvider;
import org.apache.james.mailbox.store.mail.model.Header;
import org.apache.james.mailbox.store.mail.model.Mailbox;
-import org.apache.james.mailbox.store.mail.model.MailboxMembership;
-import org.apache.james.mailbox.store.mail.model.MailboxMembershipComparator;
+import org.apache.james.mailbox.store.mail.model.Message;
+import org.apache.james.mailbox.store.mail.model.MessageComparator;
import org.apache.james.mailbox.store.mail.model.PropertyBuilder;
import org.apache.james.mailbox.store.streaming.ConfigurableMimeTokenStream;
import org.apache.james.mailbox.store.streaming.CountingInputStream;
@@ -264,7 +264,7 @@ public abstract class StoreMessageManage
flags.add(Flags.Flag.RECENT);
}
long nextUid = uidProvider.nextUid(mailboxSession, getMailboxEntity());
- final MailboxMembership<Id> message = createMessage(nextUid, internalDate, size, bodyStartOctet, tmpMsgIn.newStream(0, -1), flags, headers, propertyBuilder);
+ final Message<Id> message = createMessage(nextUid, internalDate, size, bodyStartOctet, tmpMsgIn.newStream(0, -1), flags, headers, propertyBuilder);
long uid = appendMessageToStore(message, mailboxSession);
dispatcher.added(mailboxSession, Arrays.asList(uid), new StoreMailboxPath<Id>(getMailboxEntity()));
@@ -345,7 +345,7 @@ public abstract class StoreMessageManage
* @return membership
* @throws MailboxException
*/
- protected abstract MailboxMembership<Id> createMessage(long uid, Date internalDate, final int size, int bodyStartOctet,
+ protected abstract Message<Id> createMessage(long uid, Date internalDate, final int size, int bodyStartOctet,
final InputStream documentIn, final Flags flags, final List<Header> headers, PropertyBuilder propertyBuilder) throws MailboxException;
/**
@@ -458,7 +458,7 @@ public abstract class StoreMessageManage
}
}
- protected long appendMessageToStore(final MailboxMembership<Id> message, MailboxSession session) throws MailboxException {
+ protected long appendMessageToStore(final Message<Id> message, MailboxSession session) throws MailboxException {
final MessageMapper<Id> mapper = mapperFactory.getMessageMapper(session);
return mapperFactory.getMessageMapper(session).execute(new Mapper.Transaction<Long>() {
@@ -519,7 +519,7 @@ public abstract class StoreMessageManage
public void getMessages(MessageRange set, final FetchGroup fetchGroup, MailboxSession mailboxSession, final MessageCallback messageCallback) throws MailboxException {
mapperFactory.getMessageMapper(mailboxSession).findInMailbox(getMailboxEntity(), set, new MailboxMembershipCallback<Id>() {
- public void onMailboxMembers(List<MailboxMembership<Id>> rows) throws MailboxException {
+ public void onMailboxMembers(List<Message<Id>> rows) throws MailboxException {
messageCallback.onMessages(new ResultIterator<Id>(rows.iterator(), fetchGroup));
}
});
@@ -540,10 +540,10 @@ public abstract class StoreMessageManage
return messageMapper.execute(new Mapper.Transaction<List<Long>>() {
public List<Long> run() throws MailboxException {
- final List<MailboxMembership<Id>> members = messageMapper.findRecentMessagesInMailbox(getMailboxEntity());
+ final List<Message<Id>> members = messageMapper.findRecentMessagesInMailbox(getMailboxEntity());
final List<Long> results = new ArrayList<Long>();
- for (MailboxMembership<Id> member:members) {
+ for (Message<Id> member:members) {
results.add(member.getUid());
if (reset) {
@@ -590,7 +590,7 @@ public abstract class StoreMessageManage
NumericRange r = ranges[i];
messageMapper.findInMailbox(getMailboxEntity(), MessageRange.range(r.getLowValue(), r.getHighValue()), new MailboxMembershipCallback<Id>() {
- public void onMailboxMembers(List<MailboxMembership<Id>> list) throws MailboxException {
+ public void onMailboxMembers(List<Message<Id>> list) throws MailboxException {
for (int i = 0; i < list.size(); i++) {
long uid = list.get(i).getUid();
if (uids.contains(uid) == false) {
@@ -605,28 +605,28 @@ public abstract class StoreMessageManage
} else {
- final List<MailboxMembership<Id>> hits = new ArrayList<MailboxMembership<Id>>();
+ final List<Message<Id>> hits = new ArrayList<Message<Id>>();
messageMapper.findInMailbox(getMailboxEntity(), MessageRange.all(), new MailboxMembershipCallback<Id>() {
- public void onMailboxMembers(List<MailboxMembership<Id>> list) throws MailboxException {
+ public void onMailboxMembers(List<Message<Id>> list) throws MailboxException {
for (int i = 0; i < list.size(); i++) {
- MailboxMembership<Id> m = list.get(i);
+ Message<Id> m = list.get(i);
if (hits.contains(m) == false) {
hits.add(m);
}
}
}
});
- Collections.sort(hits, MailboxMembershipComparator.INSTANCE);
+ Collections.sort(hits, MessageComparator.INSTANCE);
- return new SearchQueryIterator(new Iterator<MailboxMembership<?>>() {
- final Iterator<MailboxMembership<Id>> it = hits.iterator();
+ return new SearchQueryIterator(new Iterator<Message<?>>() {
+ final Iterator<Message<Id>> it = hits.iterator();
public boolean hasNext() {
return it.hasNext();
}
- public MailboxMembership<?> next() {
+ public Message<?> next() {
return it.next();
}
@@ -640,12 +640,12 @@ public abstract class StoreMessageManage
}
- private Iterator<Long> copy(final List<MailboxMembership<Id>> originalRows, final MailboxSession session) throws MailboxException {
+ private Iterator<Long> copy(final List<Message<Id>> originalRows, final MailboxSession session) throws MailboxException {
try {
final List<Long> copiedRows = new ArrayList<Long>();
final MessageMapper<Id> messageMapper = mapperFactory.getMessageMapper(session);
- for (final MailboxMembership<Id> originalMessage:originalRows) {
+ for (final Message<Id> originalMessage:originalRows) {
copiedRows.add(messageMapper.execute(new Mapper.Transaction<Long>() {
public Long run() throws MailboxException {
@@ -673,7 +673,7 @@ public abstract class StoreMessageManage
final List<Long> copiedMessages = new ArrayList<Long>();
messageMapper.findInMailbox(getMailboxEntity(), set, new MailboxMembershipCallback<Id>() {
- public void onMailboxMembers(List<MailboxMembership<Id>> originalRows) throws MailboxException {
+ public void onMailboxMembers(List<Message<Id>> originalRows) throws MailboxException {
Iterator<Long> ids = to.copy(originalRows, session);
while (ids.hasNext())
copiedMessages.add(ids.next());
Modified: james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/lucene/LuceneMessageSearchIndex.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/lucene/LuceneMessageSearchIndex.java?rev=1097402&r1=1097401&r2=1097402&view=diff
==============================================================================
--- james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/lucene/LuceneMessageSearchIndex.java (original)
+++ james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/lucene/LuceneMessageSearchIndex.java Thu Apr 28 10:29:38 2011
@@ -49,7 +49,7 @@ import org.apache.james.mailbox.SearchQu
import org.apache.james.mailbox.UnsupportedSearchException;
import org.apache.james.mailbox.store.MessageSearchIndex;
import org.apache.james.mailbox.store.mail.model.Mailbox;
-import org.apache.james.mailbox.store.mail.model.MailboxMembership;
+import org.apache.james.mailbox.store.mail.model.Message;
import org.apache.james.mime4j.MimeException;
import org.apache.james.mime4j.descriptor.BodyDescriptor;
import org.apache.james.mime4j.message.Header;
@@ -218,7 +218,7 @@ public class LuceneMessageSearchIndex<Id
* @param membership
* @return document
*/
- public static Document createDocument(MailboxMembership<?> membership) throws MailboxException{
+ public static Document createDocument(Message<?> membership) throws MailboxException{
final Document doc = new Document();
// TODO: Better handling
doc.add(new Field(MAILBOX_ID_FIELD, membership.getMailboxId().toString(), Store.NO, Index.NOT_ANALYZED));
@@ -240,7 +240,7 @@ public class LuceneMessageSearchIndex<Id
doc.add(new NumericField(INTERNAL_DATE_FIELD_SECOND_RESOLUTION,Store.NO, true).setLongValue(DateUtils.truncate(membership.getInternalDate(),Calendar.SECOND).getTime()));
doc.add(new NumericField(INTERNAL_DATE_FIELD_MILLISECOND_RESOLUTION,Store.NO, true).setLongValue(DateUtils.truncate(membership.getInternalDate(),Calendar.MILLISECOND).getTime()));
- doc.add(new NumericField(SIZE_FIELD,Store.NO, true).setLongValue(membership.getMessage().getFullContentOctets()));
+ doc.add(new NumericField(SIZE_FIELD,Store.NO, true).setLongValue(membership.getFullContentOctets()));
// content handler which will index the headers and the body of the message
SimpleContentHandler handler = new SimpleContentHandler() {
@@ -287,7 +287,7 @@ public class LuceneMessageSearchIndex<Id
parser.setContentHandler(handler);
try {
// parse the message to index headers and body
- parser.parse(membership.getMessage().getFullContent());
+ parser.parse(membership.getFullContent());
} catch (MimeException e) {
// This should never happen as it was parsed before too without problems.
throw new MailboxException("Unable to index content of message", e);
@@ -556,7 +556,7 @@ public class LuceneMessageSearchIndex<Id
* (non-Javadoc)
* @see org.apache.james.mailbox.store.MessageSearchIndex#add(org.apache.james.mailbox.MailboxSession, org.apache.james.mailbox.store.mail.model.Mailbox, org.apache.james.mailbox.store.mail.model.MailboxMembership)
*/
- public void add(MailboxSession session, Mailbox<Id> mailbox, MailboxMembership<Id> membership) throws MailboxException {
+ public void add(MailboxSession session, Mailbox<Id> mailbox, Message<Id> membership) throws MailboxException {
Document doc = createDocument(membership);
try {
writer.addDocument(doc);
Modified: james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/MessageMapper.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/MessageMapper.java?rev=1097402&r1=1097401&r2=1097402&view=diff
==============================================================================
--- james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/MessageMapper.java (original)
+++ james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/MessageMapper.java Thu Apr 28 10:29:38 2011
@@ -27,7 +27,6 @@ import org.apache.james.mailbox.MailboxE
import org.apache.james.mailbox.MessageRange;
import org.apache.james.mailbox.UpdatedFlags;
import org.apache.james.mailbox.store.mail.model.Mailbox;
-import org.apache.james.mailbox.store.mail.model.MailboxMembership;
import org.apache.james.mailbox.store.mail.model.Message;
import org.apache.james.mailbox.store.transaction.Mapper;
@@ -89,7 +88,7 @@ public interface MessageMapper<Id> exten
* @param message
* @throws StorageException
*/
- public abstract void delete(Mailbox<Id> mailbox, MailboxMembership<Id> message) throws MailboxException;
+ public abstract void delete(Mailbox<Id> mailbox, Message<Id> message) throws MailboxException;
/**
* Return the uid of the first unseen message. If non can be found null will get returned
@@ -109,7 +108,7 @@ public interface MessageMapper<Id> exten
* @return recentList
* @throws StorageException
*/
- public abstract List<MailboxMembership<Id>> findRecentMessagesInMailbox(Mailbox<Id> mailbox) throws MailboxException;
+ public abstract List<Message<Id>> findRecentMessagesInMailbox(Mailbox<Id> mailbox) throws MailboxException;
/**
@@ -122,7 +121,7 @@ public interface MessageMapper<Id> exten
* @return uid
* @throws StorageException
*/
- public abstract long add(Mailbox<Id> mailbox, MailboxMembership<Id> message) throws MailboxException;
+ public abstract long add(Mailbox<Id> mailbox, Message<Id> message) throws MailboxException;
/**
* Update flags for the given {@link MessageRange}. Only the flags may be modified after a message was saved to a mailbox.
@@ -148,6 +147,6 @@ public interface MessageMapper<Id> exten
* @return The uid of the copied instance
* @throws StorageException
*/
- public abstract long copy(Mailbox<Id> mailbox, long uid, MailboxMembership<Id> original) throws MailboxException;
+ public abstract long copy(Mailbox<Id> mailbox, long uid, Message<Id> original) throws MailboxException;
}
\ No newline at end of file
Modified: james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/model/AbstractMessage.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/model/AbstractMessage.java?rev=1097402&r1=1097401&r2=1097402&view=diff
==============================================================================
--- james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/model/AbstractMessage.java (original)
+++ james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/model/AbstractMessage.java Thu Apr 28 10:29:38 2011
@@ -18,14 +18,53 @@
****************************************************************/
package org.apache.james.mailbox.store.mail.model;
+import javax.mail.Flags;
+
/**
* Abstract base class for {@link Message}
*
*/
-public abstract class AbstractMessage implements Message {
+public abstract class AbstractMessage<Id> implements Message<Id>, Comparable<Message<Id>> {
+
+
+ /*
+ * (non-Javadoc)
+ * @see java.lang.Comparable#compareTo(java.lang.Object)
+ */
+ public int compareTo(Message<Id> other) {
+ return (int) (getUid() - other.getUid());
+ }
+
+
+ /**
+ * @see org.apache.james.mailbox.store.mail.model.MailboxMembership#createFlags()
+ */
+ public Flags createFlags() {
+ final Flags flags = new Flags();
+
+ if (isAnswered()) {
+ flags.add(Flags.Flag.ANSWERED);
+ }
+ if (isDeleted()) {
+ flags.add(Flags.Flag.DELETED);
+ }
+ if (isDraft()) {
+ flags.add(Flags.Flag.DRAFT);
+ }
+ if (isFlagged()) {
+ flags.add(Flags.Flag.FLAGGED);
+ }
+ if (isRecent()) {
+ flags.add(Flags.Flag.RECENT);
+ }
+ if (isSeen()) {
+ flags.add(Flags.Flag.SEEN);
+ }
+ return flags;
+ }
/**
* The number of octets contained in the body of this part.
Modified: james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/model/Message.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/model/Message.java?rev=1097402&r1=1097401&r2=1097402&view=diff
==============================================================================
--- james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/model/Message.java (original)
+++ james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/model/Message.java Thu Apr 28 10:29:38 2011
@@ -20,15 +20,92 @@ package org.apache.james.mailbox.store.m
import java.io.IOException;
import java.io.InputStream;
+import java.util.Date;
import java.util.List;
+import javax.mail.Flags;
+
/**
* A MIME message, consisting of meta-data (including MIME headers)
* plus body content. In the case of multipart documents, this body content
* has internal structure described by the meta-data.
*/
-public interface Message {
+public interface Message<Id> {
+
+ public abstract Date getInternalDate();
+
+ /**
+ * Return the mailbox id of the linked mailbox
+ *
+ * @return mailboxId
+ */
+ public abstract Id getMailboxId();
+
+ /**
+ * Return the uid
+ *
+ * @return uid
+ */
+ public abstract long getUid();
+
+ /**
+ * Return if it was marked as answered
+ *
+ * @return answered
+ */
+ public abstract boolean isAnswered();
+
+ /**
+ * Return if it was mark as deleted
+ *
+ * @return deleted
+ */
+ public abstract boolean isDeleted();
+
+ /**
+ * Return if it was mark as draft
+ *
+ * @return draft
+ */
+ public abstract boolean isDraft();
+
+ /**
+ * Return if it was flagged
+ *
+ * @return flagged
+ */
+ public abstract boolean isFlagged();
+
+ /**
+ * Return if it was marked as recent
+ *
+ * @return recent
+ */
+ public abstract boolean isRecent();
+
+ /**
+ * Return if it was marked as seen
+ *
+ * @return seen
+ */
+ public abstract boolean isSeen();
+
+
+ /**
+ * Set the Flags
+ *
+ * @param flags
+ */
+ public abstract void setFlags(Flags flags);
+
+ /**
+ * Creates a new flags instance populated
+ * with the current flag data.
+ *
+ * @return new instance, not null
+ */
+ public abstract Flags createFlags();
/**
* Gets the full content (including headers) of the document.
Copied: james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/model/MessageComparator.java (from r1090983, james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/model/MailboxMembershipComparator.java)
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/model/MessageComparator.java?p2=james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/model/MessageComparator.java&p1=james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/model/MailboxMembershipComparator.java&r1=1090983&r2=1097402&rev=1097402&view=diff
==============================================================================
--- james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/model/MailboxMembershipComparator.java (original)
+++ james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/mail/model/MessageComparator.java Thu Apr 28 10:29:38 2011
@@ -23,19 +23,19 @@ import java.util.Comparator;
/**
- * UID comparator for mailbox membership.
+ * UID comparator for {@link Message}.
*/
-public final class MailboxMembershipComparator implements Comparator<MailboxMembership<?>> {
+public final class MessageComparator implements Comparator<Message<?>> {
- public static final MailboxMembershipComparator INSTANCE = new MailboxMembershipComparator();
+ public static final MessageComparator INSTANCE = new MessageComparator();
- private MailboxMembershipComparator() {}
+ private MessageComparator() {}
/*
* (non-Javadoc)
* @see java.util.Comparator#compare(java.lang.Object, java.lang.Object)
*/
- public int compare(MailboxMembership<?> o1, MailboxMembership<?> o2) {
+ public int compare(Message<?> o1, Message<?> o2) {
final long uid = o1.getUid();
final long otherUid = o2.getUid();
return uid < otherUid ? -1 : uid == otherUid ? 0 : 1;
Modified: james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/transaction/Mapper.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/transaction/Mapper.java?rev=1097402&r1=1097401&r2=1097402&view=diff
==============================================================================
--- james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/transaction/Mapper.java (original)
+++ james/mailbox/trunk/store/src/main/java/org/apache/james/mailbox/store/transaction/Mapper.java Thu Apr 28 10:29:38 2011
@@ -22,7 +22,7 @@ package org.apache.james.mailbox.store.t
import java.util.List;
import org.apache.james.mailbox.MailboxException;
-import org.apache.james.mailbox.store.mail.model.MailboxMembership;
+import org.apache.james.mailbox.store.mail.model.Message;
/**
* Mapper which execute units of work in a {@link Transaction}
@@ -58,7 +58,7 @@ public interface Mapper {
}
public interface MailboxMembershipCallback<Id> {
- void onMailboxMembers(List<MailboxMembership<Id>> list) throws MailboxException;
+ void onMailboxMembers(List<Message<Id>> list) throws MailboxException;
}
public abstract class VoidTransaction implements Transaction<Void> {
Modified: james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/MessageBuilder.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/MessageBuilder.java?rev=1097402&r1=1097401&r2=1097402&view=diff
==============================================================================
--- james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/MessageBuilder.java (original)
+++ james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/MessageBuilder.java Thu Apr 28 10:29:38 2011
@@ -25,7 +25,7 @@ import java.util.List;
import javax.mail.Flags;
import org.apache.james.mailbox.store.mail.model.Header;
-import org.apache.james.mailbox.store.mail.model.MailboxMembership;
+import org.apache.james.mailbox.store.mail.model.Message;
public class MessageBuilder {
@@ -38,8 +38,8 @@ public class MessageBuilder {
public final List<SimpleHeader> headers = new ArrayList<SimpleHeader>();
public int lineNumber = 0;
- public MailboxMembership<Long> build() throws Exception {
- MailboxMembership<Long> result = new SimpleMailboxMembership(mailboxId, uid, internalDate, size, flags, body, headers);
+ public Message<Long> build() throws Exception {
+ Message<Long> result = new SimpleMailboxMembership(mailboxId, uid, internalDate, size, flags, body, headers);
return result;
}
Modified: james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/MessageRowUtilsTest.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/MessageRowUtilsTest.java?rev=1097402&r1=1097401&r2=1097402&view=diff
==============================================================================
--- james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/MessageRowUtilsTest.java (original)
+++ james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/MessageRowUtilsTest.java Thu Apr 28 10:29:38 2011
@@ -22,7 +22,7 @@ package org.apache.james.mailbox.store;
import static org.junit.Assert.*;
import org.apache.james.mailbox.store.ResultUtils;
-import org.apache.james.mailbox.store.mail.model.MailboxMembership;
+import org.apache.james.mailbox.store.mail.model.Message;
import org.junit.Test;
public class MessageRowUtilsTest {
@@ -30,12 +30,12 @@ public class MessageRowUtilsTest {
@Test
public void testShouldReturnPositiveWhenFirstGreaterThanSecond()
throws Exception {
- MailboxMembership<Long> one = buildMessage(100);
- MailboxMembership<Long> two = buildMessage(99);
+ Message<Long> one = buildMessage(100);
+ Message<Long> two = buildMessage(99);
assertTrue(ResultUtils.getUidComparator().compare(one, two) > 0);
}
- private MailboxMembership<Long> buildMessage(int uid) throws Exception {
+ private Message<Long> buildMessage(int uid) throws Exception {
MessageBuilder builder = new MessageBuilder();
builder.uid = uid;
return builder.build();
@@ -44,15 +44,15 @@ public class MessageRowUtilsTest {
@Test
public void testShouldReturnNegativeWhenFirstLessThanSecond()
throws Exception {
- MailboxMembership<Long> one = buildMessage(98);
- MailboxMembership<Long> two = buildMessage(99);
+ Message<Long> one = buildMessage(98);
+ Message<Long> two = buildMessage(99);
assertTrue(ResultUtils.getUidComparator().compare(one, two) < 0);
}
@Test
public void testShouldReturnZeroWhenFirstEqualsSecond() throws Exception {
- MailboxMembership<Long> one = buildMessage(90);
- MailboxMembership<Long> two = buildMessage(90);
+ Message<Long> one = buildMessage(90);
+ Message<Long> two = buildMessage(90);
assertEquals(0, ResultUtils.getUidComparator().compare(one, two));
}
}
Modified: james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/SearchUtilsMultipartMixedTest.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/SearchUtilsMultipartMixedTest.java?rev=1097402&r1=1097401&r2=1097402&view=diff
==============================================================================
--- james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/SearchUtilsMultipartMixedTest.java (original)
+++ james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/SearchUtilsMultipartMixedTest.java Thu Apr 28 10:29:38 2011
@@ -27,7 +27,7 @@ import java.util.Collection;
import org.apache.james.mailbox.SearchQuery;
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;
@@ -105,7 +105,7 @@ public class SearchUtilsMultipartMixedTe
+ " Than both your poets can in praise devise.\r\n"
+ "\r\n--2.50290787509--\r\n" + "\r\n--1729--\r\n";
- MailboxMembership<Long> row;
+ Message<Long> row;
MessageSearches searches;
Modified: james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/SearchUtilsRFC822Test.java
URL: http://svn.apache.org/viewvc/james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/SearchUtilsRFC822Test.java?rev=1097402&r1=1097401&r2=1097402&view=diff
==============================================================================
--- james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/SearchUtilsRFC822Test.java (original)
+++ james/mailbox/trunk/store/src/test/java/org/apache/james/mailbox/store/SearchUtilsRFC822Test.java Thu Apr 28 10:29:38 2011
@@ -27,7 +27,7 @@ import java.util.Collection;
import org.apache.james.mailbox.SearchQuery;
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;
@@ -45,7 +45,7 @@ public class SearchUtilsRFC822Test {
+ "It has " + RHUBARD + ".\r\n" + "It has " + CUSTARD + ".\r\n"
+ "It needs naught else.\r\n";
- MailboxMembership<Long> row;
+ Message<Long> row;
MessageSearches searches;
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org