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 rd...@apache.org on 2009/06/03 10:09:49 UTC
svn commit: r781291 - in /james/imap/trunk:
mailbox/src/main/java/org/apache/james/imap/mailbox/
mailbox/src/main/java/org/apache/james/imap/mailbox/util/
processor/src/main/java/org/apache/james/imap/processor/
processor/src/main/java/org/apache/james...
Author: rdonkin
Date: Wed Jun 3 08:09:48 2009
New Revision: 781291
URL: http://svn.apache.org/viewvc?rev=781291&view=rev
Log:
IMAP-95 Using an interface seems like overengineering here. https://issues.apache.org/jira/browse/IMAP-95
Removed:
james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/util/MessageRangeImpl.java
Modified:
james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MessageRange.java
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/CloseProcessor.java
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/CopyProcessor.java
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/StoreProcessor.java
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java
james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/fetch/FetchResponseBuilder.java
Modified: james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MessageRange.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MessageRange.java?rev=781291&r1=781290&r2=781291&view=diff
==============================================================================
--- james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MessageRange.java (original)
+++ james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MessageRange.java Wed Jun 3 08:09:48 2009
@@ -24,7 +24,7 @@
* key or message object.<br />
* The type of the set should be defined by using an appropriate constructor.
*/
-public interface MessageRange {
+public class MessageRange {
public enum Type {
/** All messages */
@@ -37,9 +37,84 @@
RANGE
}
- Type getType();
+ private static final int NOT_A_UID = -1;
+
+ /**
+ * Constructs a range consisting of a single message only.
+ * @param uid UID of the message
+ * @return not null
+ */
+ public static MessageRange one(long uid) {
+ final MessageRange result = new MessageRange(Type.ONE, uid, uid);
+ return result;
+ }
+
+ /**
+ * Constructs a range consisting of all messages.
+ * @return not null
+ */
+ public static MessageRange all() {
+ final MessageRange result = new MessageRange(Type.ALL, NOT_A_UID,
+ NOT_A_UID);
+ return result;
+ }
+
+ /**
+ * Constructs an inclusive ranges of messages.
+ * The parameters will be checked and {@link #from(long)}
+ * used where appropriate.
+ * @param from first message UID
+ * @param to last message UID
+ * @return not null
+ */
+ public static MessageRange range(long from, long to) {
+ final MessageRange result;
+ if (to == Long.MAX_VALUE || to < from) {
+ to = NOT_A_UID;
+ result = from(from);
+ } else {
+ result = new MessageRange(Type.RANGE, from, to);
+ }
+ return result;
+ }
+
+ /**
+ * Constructs an inclusive, open ended range of messages.
+ * @param from first messege UID in range
+ * @return not null
+ */
+ public static MessageRange from(long from) {
+ final MessageRange result= new MessageRange(Type.FROM, from, NOT_A_UID);
+ return result;
+ }
+
+ private final Type type;
+
+ private final long uidFrom;
- long getUidFrom();
+ private final long uidTo;
- long getUidTo();
+ private MessageRange(final Type type, final long uidFrom,
+ final long uidTo) {
+ super();
+ this.type = type;
+ this.uidFrom = uidFrom;
+ this.uidTo = uidTo;
+ }
+
+ public Type getType() {
+ return type;
+ }
+
+ public long getUidFrom() {
+ return uidFrom;
+ }
+
+ public long getUidTo() {
+ return uidTo;
+ }
+
+ public String toString() {
+ return "TYPE: " + type + " UID: " + uidFrom + ":" + uidTo;
+ }
}
Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java?rev=781291&r1=781290&r2=781291&view=diff
==============================================================================
--- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java (original)
+++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractMailboxProcessor.java Wed Jun 3 08:09:48 2009
@@ -46,7 +46,6 @@
import org.apache.james.imap.mailbox.MessageRange;
import org.apache.james.imap.mailbox.MessageResult;
import org.apache.james.imap.mailbox.util.FetchGroupImpl;
-import org.apache.james.imap.mailbox.util.MessageRangeImpl;
import org.apache.james.imap.message.response.ExistsResponse;
import org.apache.james.imap.message.response.ExpungeResponse;
import org.apache.james.imap.message.response.FetchResponse;
@@ -189,7 +188,7 @@
final Mailbox mailbox = getMailbox(session, selected);
final MailboxSession mailboxSession = ImapSessionUtils.getMailboxSession(session);
for (final Long uid: flagUpdateUids) {
- MessageRange messageSet = MessageRangeImpl.oneUid(uid.longValue());
+ MessageRange messageSet = MessageRange.one(uid.longValue());
addFlagsResponses(session, selected, responder, useUid, messageSet, mailbox, mailboxSession);
}
}
Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java?rev=781291&r1=781290&r2=781291&view=diff
==============================================================================
--- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java (original)
+++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/AbstractSelectionProcessor.java Wed Jun 3 08:09:48 2009
@@ -39,10 +39,10 @@
import org.apache.james.imap.mailbox.MailboxManager;
import org.apache.james.imap.mailbox.MailboxNotFoundException;
import org.apache.james.imap.mailbox.MailboxSession;
+import org.apache.james.imap.mailbox.MessageRange;
import org.apache.james.imap.mailbox.MessageResult;
import org.apache.james.imap.mailbox.Mailbox.MetaData;
import org.apache.james.imap.mailbox.util.FetchGroupImpl;
-import org.apache.james.imap.mailbox.util.MessageRangeImpl;
import org.apache.james.imap.message.request.AbstractMailboxSelectionRequest;
import org.apache.james.imap.message.response.ExistsResponse;
import org.apache.james.imap.message.response.FlagsResponse;
@@ -196,7 +196,7 @@
final MailboxSession mailboxSession, ImapSession session, String name)
throws MailboxException {
final SelectedMailbox sessionMailbox;
- final Iterator<MessageResult> it = mailbox.getMessages(MessageRangeImpl.all(),
+ final Iterator<MessageResult> it = mailbox.getMessages(MessageRange.all(),
FetchGroupImpl.MINIMAL, mailboxSession);
final List<Long> uids = new ArrayList<Long>();
while (it.hasNext()) {
Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/CloseProcessor.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/CloseProcessor.java?rev=781291&r1=781290&r2=781291&view=diff
==============================================================================
--- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/CloseProcessor.java (original)
+++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/CloseProcessor.java Wed Jun 3 08:09:48 2009
@@ -29,7 +29,7 @@
import org.apache.james.imap.mailbox.MailboxException;
import org.apache.james.imap.mailbox.MailboxManager;
import org.apache.james.imap.mailbox.MailboxSession;
-import org.apache.james.imap.mailbox.util.MessageRangeImpl;
+import org.apache.james.imap.mailbox.MessageRange;
import org.apache.james.imap.message.request.CloseRequest;
import org.apache.james.imap.processor.base.ImapSessionUtils;
@@ -52,7 +52,7 @@
final MailboxSession mailboxSession = ImapSessionUtils
.getMailboxSession(session);
- mailbox.expunge(MessageRangeImpl.all(), mailboxSession);
+ mailbox.expunge(MessageRange.all(), mailboxSession);
session.deselect();
// TODO: the following comment was present in the code before
// refactoring
Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/CopyProcessor.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/CopyProcessor.java?rev=781291&r1=781290&r2=781291&view=diff
==============================================================================
--- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/CopyProcessor.java (original)
+++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/CopyProcessor.java Wed Jun 3 08:09:48 2009
@@ -33,7 +33,6 @@
import org.apache.james.imap.mailbox.MailboxManager;
import org.apache.james.imap.mailbox.MailboxSession;
import org.apache.james.imap.mailbox.MessageRange;
-import org.apache.james.imap.mailbox.util.MessageRangeImpl;
import org.apache.james.imap.message.request.CopyRequest;
import org.apache.james.imap.processor.base.ImapSessionUtils;
@@ -79,8 +78,7 @@
lowVal = session.getSelected().uid(
(int) idSet[i].getLowVal());
}
- MessageRange messageSet = MessageRangeImpl.uidRange(lowVal,
- highVal);
+ MessageRange messageSet = MessageRange.range(lowVal, highVal);
mailboxManager.copyMessages(messageSet, currentMailbox
.getName(), fullMailboxName, mailboxSession);
}
Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java?rev=781291&r1=781290&r2=781291&view=diff
==============================================================================
--- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java (original)
+++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/ExpungeProcessor.java Wed Jun 3 08:09:48 2009
@@ -32,7 +32,7 @@
import org.apache.james.imap.mailbox.Mailbox;
import org.apache.james.imap.mailbox.MailboxException;
import org.apache.james.imap.mailbox.MailboxManager;
-import org.apache.james.imap.mailbox.util.MessageRangeImpl;
+import org.apache.james.imap.mailbox.MessageRange;
import org.apache.james.imap.message.request.ExpungeRequest;
import org.apache.james.imap.processor.base.ImapSessionUtils;
@@ -56,7 +56,7 @@
no(command, tag, responder,
HumanReadableText.MAILBOX_IS_READ_ONLY);
} else {
- final Iterator<Long> it = mailbox.expunge(MessageRangeImpl.all(),
+ final Iterator<Long> it = mailbox.expunge(MessageRange.all(),
ImapSessionUtils
.getMailboxSession(session));
final SelectedMailbox mailboxSession = session
Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/StoreProcessor.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/StoreProcessor.java?rev=781291&r1=781290&r2=781291&view=diff
==============================================================================
--- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/StoreProcessor.java (original)
+++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/StoreProcessor.java Wed Jun 3 08:09:48 2009
@@ -36,7 +36,6 @@
import org.apache.james.imap.mailbox.MailboxManager;
import org.apache.james.imap.mailbox.MailboxSession;
import org.apache.james.imap.mailbox.MessageRange;
-import org.apache.james.imap.mailbox.util.MessageRangeImpl;
import org.apache.james.imap.message.request.StoreRequest;
import org.apache.james.imap.message.response.FetchResponse;
import org.apache.james.imap.processor.base.ImapSessionUtils;
@@ -87,8 +86,7 @@
lowVal = selected.uid((int) idSet[i].getLowVal());
highVal = selected.uid((int) idSet[i].getHighVal());
}
- final MessageRange messageSet = MessageRangeImpl.uidRange(
- lowVal, highVal);
+ final MessageRange messageSet = MessageRange.range(lowVal, highVal);
final MailboxSession mailboxSession = ImapSessionUtils
.getMailboxSession(session);
final Map<Long, Flags> flagsByUid = mailbox.setFlags(flags, value, replace,
Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java?rev=781291&r1=781290&r2=781291&view=diff
==============================================================================
--- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java (original)
+++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/fetch/FetchProcessor.java Wed Jun 3 08:09:48 2009
@@ -43,7 +43,6 @@
import org.apache.james.imap.mailbox.MessageResult.FetchGroup;
import org.apache.james.imap.mailbox.MessageResult.MimePath;
import org.apache.james.imap.mailbox.util.FetchGroupImpl;
-import org.apache.james.imap.mailbox.util.MessageRangeImpl;
import org.apache.james.imap.message.request.FetchRequest;
import org.apache.james.imap.message.response.FetchResponse;
import org.apache.james.imap.processor.AbstractMailboxProcessor;
@@ -84,7 +83,7 @@
lowVal = session.getSelected().uid(
(int) idSet[i].getLowVal());
}
- MessageRange messageSet = MessageRangeImpl.uidRange(lowVal, highVal);
+ MessageRange messageSet = MessageRange.range(lowVal, highVal);
final MailboxSession mailboxSession = ImapSessionUtils
.getMailboxSession(session);
final Iterator<MessageResult> it = mailbox.getMessages(messageSet, resultToFetch, mailboxSession);
Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/fetch/FetchResponseBuilder.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/fetch/FetchResponseBuilder.java?rev=781291&r1=781290&r2=781291&view=diff
==============================================================================
--- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/fetch/FetchResponseBuilder.java (original)
+++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/fetch/FetchResponseBuilder.java Wed Jun 3 08:09:48 2009
@@ -39,9 +39,9 @@
import org.apache.james.imap.mailbox.Mailbox;
import org.apache.james.imap.mailbox.MailboxException;
import org.apache.james.imap.mailbox.MailboxSession;
+import org.apache.james.imap.mailbox.MessageRange;
import org.apache.james.imap.mailbox.MessageResult;
import org.apache.james.imap.mailbox.MimeDescriptor;
-import org.apache.james.imap.mailbox.util.MessageRangeImpl;
import org.apache.james.imap.message.response.FetchResponse;
import org.apache.james.imap.processor.base.ImapSessionUtils;
import org.apache.james.mime4j.field.address.parser.ParseException;
@@ -116,7 +116,7 @@
final Flags resultFlags = result.getFlags();
if (fetch.isSetSeen() && !resultFlags.contains(Flags.Flag.SEEN)) {
mailbox.setFlags(new Flags(Flags.Flag.SEEN), true, false,
- MessageRangeImpl.oneUid(resultUid), mailboxSession);
+ MessageRange.one(resultUid), mailboxSession);
resultFlags.add(Flags.Flag.SEEN);
ensureFlagsResponse = true;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org