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 2010/03/22 18:52:56 UTC

svn commit: r926222 [2/2] - in /james/imap/trunk: jcr/src/main/java/org/apache/james/imap/jcr/ jcr/src/main/java/org/apache/james/imap/jcr/mail/ jcr/src/main/java/org/apache/james/imap/jcr/mail/model/ jpa/src/main/java/org/apache/james/imap/jpa/ jpa/sr...

Modified: james/imap/trunk/store/src/main/java/org/apache/james/imap/store/MessageSearches.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/MessageSearches.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/store/src/main/java/org/apache/james/imap/store/MessageSearches.java (original)
+++ james/imap/trunk/store/src/main/java/org/apache/james/imap/store/MessageSearches.java Mon Mar 22 17:52:55 2010
@@ -77,15 +77,14 @@ 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 MailboxMembership<?> message)
             throws MailboxException {
-        final List criteria = query.getCriterias();
-        final Collection recentMessageUids = query.getRecentMessageUids();
+        final List<SearchQuery.Criterion> criteria = query.getCriterias();
+        final Collection<Long> recentMessageUids = query.getRecentMessageUids();
         boolean result = true;
         if (criteria != null) {
-            for (Iterator it = criteria.iterator(); it.hasNext();) {
-                final SearchQuery.Criterion criterion = (SearchQuery.Criterion) it
-                        .next();
+            for (Iterator<SearchQuery.Criterion> it = criteria.iterator(); it.hasNext();) {
+                final SearchQuery.Criterion criterion = it.next();
                 if (!isMatch(criterion, message, recentMessageUids)) {
                     result = false;
                     break;
@@ -105,8 +104,8 @@ public class MessageSearches {
      * @return true if the row matches the given criterion, false otherwise
      * @throws MailboxException 
      */
-    public boolean isMatch(SearchQuery.Criterion criterion, MailboxMembership message,
-            final Collection recentMessageUids) throws MailboxException {
+    public boolean isMatch(SearchQuery.Criterion criterion, MailboxMembership<?> message,
+            final Collection<Long> recentMessageUids) throws MailboxException {
         final boolean result;
         if (criterion instanceof SearchQuery.InternalDateCriterion) {
             result = matches((SearchQuery.InternalDateCriterion) criterion, message);
@@ -132,7 +131,7 @@ public class MessageSearches {
         return result;
     }
 
-    private boolean matches(SearchQuery.TextCriterion criterion, MailboxMembership message) throws MailboxException  {
+    private boolean matches(SearchQuery.TextCriterion criterion, MailboxMembership<?> message) throws MailboxException  {
         try {
             final SearchQuery.ContainsOperator operator = criterion
                     .getOperator();
@@ -152,7 +151,7 @@ public class MessageSearches {
         }
     }
 
-    private boolean bodyContains(String value, MailboxMembership message)
+    private boolean bodyContains(String value, MailboxMembership<?> message)
             throws IOException, MimeException {
         final InputStream input = ResultUtils.toInput(message);
         final boolean result = isInMessage(value, input, false);
@@ -170,7 +169,7 @@ public class MessageSearches {
         return result;
     }
 
-    private boolean messageContains(String value, MailboxMembership message)
+    private boolean messageContains(String value, MailboxMembership<?> message)
             throws IOException, MimeException {
         final InputStream input = ResultUtils.toInput(message);
         final boolean result = isInMessage(value, input, true);
@@ -178,8 +177,8 @@ public class MessageSearches {
     }
 
     private boolean matches(SearchQuery.ConjunctionCriterion criterion,
-            MailboxMembership message, final Collection recentMessageUids) throws MailboxException {
-        final List criteria = criterion.getCriteria();
+            MailboxMembership<?> message, final Collection<Long> recentMessageUids) throws MailboxException {
+        final List<SearchQuery.Criterion> criteria = criterion.getCriteria();
         switch (criterion.getType()) {
             case NOR:
                 return nor(criteria, message, recentMessageUids);
@@ -192,12 +191,11 @@ public class MessageSearches {
         }
     }
 
-    private boolean and(final List criteria, final MailboxMembership message, 
-            final Collection recentMessageUids) throws MailboxException {
+    private boolean and(final List<SearchQuery.Criterion> criteria, final MailboxMembership<?> message, 
+            final Collection<Long> recentMessageUids) throws MailboxException {
         boolean result = true;
-        for (Iterator it = criteria.iterator(); it.hasNext();) {
-            final SearchQuery.Criterion criterion = (SearchQuery.Criterion) it
-                    .next();
+        for (Iterator<SearchQuery.Criterion> it = criteria.iterator(); it.hasNext();) {
+            final SearchQuery.Criterion criterion = it.next();
             final boolean matches = isMatch(criterion, message, recentMessageUids);
             if (!matches) {
                 result = false;
@@ -207,12 +205,11 @@ public class MessageSearches {
         return result;
     }
 
-    private boolean or(final List criteria, final MailboxMembership message,
-            final Collection recentMessageUids) throws MailboxException {
+    private boolean or(final List<SearchQuery.Criterion> criteria, final MailboxMembership<?> message,
+            final Collection<Long> recentMessageUids) throws MailboxException {
         boolean result = false;
-        for (Iterator it = criteria.iterator(); it.hasNext();) {
-            final SearchQuery.Criterion criterion = (SearchQuery.Criterion) it
-                    .next();
+        for (Iterator<SearchQuery.Criterion> it = criteria.iterator(); it.hasNext();) {
+            final SearchQuery.Criterion criterion = it.next();
             final boolean matches = isMatch(criterion, message, recentMessageUids);
             if (matches) {
                 result = true;
@@ -222,12 +219,11 @@ public class MessageSearches {
         return result;
     }
 
-    private boolean nor(final List criteria, final MailboxMembership message,
-            final Collection recentMessageUids) throws MailboxException {
+    private boolean nor(final List<SearchQuery.Criterion> criteria, final MailboxMembership<?> message,
+            final Collection<Long> recentMessageUids) throws MailboxException {
         boolean result = true;
-        for (Iterator it = criteria.iterator(); it.hasNext();) {
-            final SearchQuery.Criterion criterion = (SearchQuery.Criterion) it
-                    .next();
+        for (Iterator<SearchQuery.Criterion> it = criteria.iterator(); it.hasNext();) {
+            final SearchQuery.Criterion criterion =  it.next();
             final boolean matches = isMatch(criterion, message, recentMessageUids);
             if (matches) {
                 result = false;
@@ -238,7 +234,7 @@ public class MessageSearches {
     }
 
     private boolean matches(SearchQuery.FlagCriterion criterion,
-            MailboxMembership message, final Collection recentMessageUids) {
+            MailboxMembership<?> message, final Collection<Long> recentMessageUids) {
         final SearchQuery.BooleanOperator operator = criterion.getOperator();
         final boolean isSet = operator.isSet();
         final Flags.Flag flag = criterion.getFlag();
@@ -262,7 +258,7 @@ public class MessageSearches {
         return result;
     }
 
-    private boolean matches(SearchQuery.UidCriterion criterion, MailboxMembership message) {
+    private boolean matches(SearchQuery.UidCriterion criterion, MailboxMembership<?> message) {
         final SearchQuery.InOperator operator = criterion.getOperator();
         final NumericRange[] ranges = operator.getRange();
         final long uid = message.getUid();
@@ -278,7 +274,7 @@ public class MessageSearches {
         return result;
     }
 
-    private boolean matches(SearchQuery.HeaderCriterion criterion, MailboxMembership message) throws UnsupportedSearchException {
+    private boolean matches(SearchQuery.HeaderCriterion criterion, MailboxMembership<?> message) throws UnsupportedSearchException {
         final SearchQuery.HeaderOperator operator = criterion.getOperator();
         final String headerName = criterion.getHeaderName();
         final boolean result;
@@ -294,7 +290,7 @@ public class MessageSearches {
         return result;
     }
 
-    private boolean exists(String headerName, MailboxMembership message) {
+    private boolean exists(String headerName, MailboxMembership<?> message) {
         boolean result = false;
         final List<Header> headers = message.getDocument().getHeaders();
         for (Header header:headers) {
@@ -308,7 +304,7 @@ public class MessageSearches {
     }
 
     private boolean matches(final SearchQuery.ContainsOperator operator,
-            final String headerName, final MailboxMembership message) {
+            final String headerName, final MailboxMembership<?> message) {
         final String text = operator.getValue().toUpperCase();
         boolean result = false;
         final List<Header> headers = message.getDocument().getHeaders();
@@ -328,7 +324,7 @@ public class MessageSearches {
     }
 
     private boolean matches(final SearchQuery.DateOperator operator,
-            final String headerName, final MailboxMembership message) throws UnsupportedSearchException {
+            final String headerName, final MailboxMembership<?> message) throws UnsupportedSearchException {
         final int day = operator.getDay();
         final int month = operator.getMonth();
         final int year = operator.getYear();
@@ -356,7 +352,7 @@ public class MessageSearches {
         }
     }
 
-    private String headerValue(final String headerName, final MailboxMembership message) {
+    private String headerValue(final String headerName, final MailboxMembership<?> message) {
         final List<Header> headers = message.getDocument().getHeaders();
         String value = null;
         for (Header header:headers) {
@@ -377,7 +373,7 @@ public class MessageSearches {
         return isoFieldValue;
     }
 
-    private boolean matches(SearchQuery.SizeCriterion criterion, MailboxMembership message)
+    private boolean matches(SearchQuery.SizeCriterion criterion, MailboxMembership<?> message)
             throws UnsupportedSearchException {
         final SearchQuery.NumericOperator operator = criterion.getOperator();
         final int size = message.getSize();
@@ -395,14 +391,14 @@ public class MessageSearches {
     }
 
     private boolean matches(SearchQuery.InternalDateCriterion criterion,
-            MailboxMembership message) throws UnsupportedSearchException {
+            MailboxMembership<?> 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 MailboxMembership<?> message)
             throws UnsupportedSearchException {
         final int day = operator.getDay();
         final int month = operator.getMonth();

Modified: james/imap/trunk/store/src/main/java/org/apache/james/imap/store/ResultIterator.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/ResultIterator.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/store/src/main/java/org/apache/james/imap/store/ResultIterator.java (original)
+++ james/imap/trunk/store/src/main/java/org/apache/james/imap/store/ResultIterator.java Mon Mar 22 17:52:55 2010
@@ -20,7 +20,6 @@
 package org.apache.james.imap.store;
 
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.Date;
 import java.util.Iterator;
 import java.util.List;
@@ -36,19 +35,18 @@ import org.apache.james.imap.mailbox.Mes
 import org.apache.james.imap.mailbox.util.FetchGroupImpl;
 import org.apache.james.imap.store.mail.model.MailboxMembership;
 
-public class ResultIterator implements Iterator<MessageResult> {
+public class ResultIterator<Id> implements Iterator<MessageResult> {
 
-    private final List<MailboxMembership> messages;
+    private final List<MailboxMembership<Id>> messages;
 
     private final FetchGroup fetchGroup;
 
-    @SuppressWarnings("unchecked")
-    public ResultIterator(final List<MailboxMembership> messages, final FetchGroup fetchGroup) {
+    public ResultIterator(final List<MailboxMembership<Id>> messages, final FetchGroup fetchGroup) {
         super();
         if (messages == null) {
-            this.messages = Collections.EMPTY_LIST;
+            this.messages = new ArrayList<MailboxMembership<Id>>();
         } else {
-            this.messages = new ArrayList<MailboxMembership>(messages);
+            this.messages = new ArrayList<MailboxMembership<Id>>(messages);
         }
         this.fetchGroup = fetchGroup;
     }
@@ -58,7 +56,7 @@ public class ResultIterator implements I
      * 
      * @return <code>Iterator</code> for message rows
      */
-    public final Iterator<MailboxMembership> iterateRows() {
+    public final Iterator<MailboxMembership<Id>> iterateRows() {
         return messages.iterator();
     }
 
@@ -70,14 +68,14 @@ public class ResultIterator implements I
         if (messages.isEmpty()) {
             throw new NoSuchElementException("No such element.");
         }
-        final MailboxMembership message = messages.get(0);
+        final MailboxMembership<Id> message = messages.get(0);
         messages.remove(message);
         MessageResult result;
         try {
 
             result = ResultUtils.loadMessageResult(message, this.fetchGroup);
         } catch (MailboxException e) {
-            result = new UnloadedMessageResult(message, e);
+            result = new UnloadedMessageResult<Id>(message, e);
         }
         return result;
     }
@@ -94,7 +92,7 @@ public class ResultIterator implements I
         return results;
     }
     
-    private static final class UnloadedMessageResult implements MessageResult {
+    private static final class UnloadedMessageResult<Id> implements MessageResult {
         private static final FetchGroup FETCH_GROUP = FetchGroupImpl.MINIMAL;
 
         private final MailboxException exception;
@@ -105,7 +103,7 @@ public class ResultIterator implements I
 
         private final long uid;
 
-        public UnloadedMessageResult(final MailboxMembership message,
+        public UnloadedMessageResult(final MailboxMembership<Id> message,
                 final MailboxException exception) {
             super();
             internalDate = message.getInternalDate();
@@ -122,7 +120,6 @@ public class ResultIterator implements I
             throw exception;
         }
 
-        @SuppressWarnings("unused")
 		public FetchGroup getIncludedResults() {
             return FETCH_GROUP;
         }

Modified: james/imap/trunk/store/src/main/java/org/apache/james/imap/store/ResultUtils.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/ResultUtils.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/store/src/main/java/org/apache/james/imap/store/ResultUtils.java (original)
+++ james/imap/trunk/store/src/main/java/org/apache/james/imap/store/ResultUtils.java Mon Mar 22 17:52:55 2010
@@ -54,7 +54,7 @@ public class ResultUtils {
 
     static final Charset US_ASCII = Charset.forName("US-ASCII");
 
-    public static List<MessageResult.Header> createHeaders(MailboxMembership message) {
+    public static List<MessageResult.Header> createHeaders(MailboxMembership<?> message) {
         final org.apache.james.imap.store.mail.model.Document document = message.getDocument();
         return createHeaders(document);
     }
@@ -82,7 +82,7 @@ public class ResultUtils {
      * @param membership
      * @return bodyContent
      */
-    public static Content createBodyContent(MailboxMembership membership) {
+    public static Content createBodyContent(MailboxMembership<?> membership) {
         final ByteBuffer bytes = membership.getDocument().getBodyContent();
         final ByteContent result = new ByteContent(bytes);
         return result;
@@ -94,7 +94,7 @@ public class ResultUtils {
      * @param membership
      * @return content
      */
-    public static Content createFullContent(final MailboxMembership membership) {
+    public static Content createFullContent(final MailboxMembership<?> membership) {
         final ByteBuffer bytes = membership.getDocument().getFullContent();
         final ByteContent results = new ByteContent(bytes);
         return results;
@@ -108,7 +108,7 @@ public class ResultUtils {
      * @return result
      * @throws MailboxException
      */
-    public static MessageResult loadMessageResult(final MailboxMembership message, final FetchGroup fetchGroup) 
+    public static MessageResult loadMessageResult(final MailboxMembership<?> message, final FetchGroup fetchGroup) 
                 throws MailboxException {
 
         MessageResultImpl messageResult = new MessageResultImpl();
@@ -150,31 +150,31 @@ public class ResultUtils {
         return messageResult;
     }
 
-    private static void addMimeDescriptor(MailboxMembership message, MessageResultImpl messageResult) throws IOException, MimeException {
+    private static void addMimeDescriptor(MailboxMembership<?> message, MessageResultImpl messageResult) throws IOException, MimeException {
             MimeDescriptor descriptor = MimeDescriptorImpl.build(message.getDocument());
             messageResult.setMimeDescriptor(descriptor);
     }
 
-    private static void addFullContent(final MailboxMembership messageRow, MessageResultImpl messageResult) 
+    private static void addFullContent(final MailboxMembership<?> messageRow, MessageResultImpl messageResult) 
             throws MailboxException {
         final Content content = createFullContent(messageRow);
         messageResult.setFullContent(content);
     }
 
-    private static void addBody(final MailboxMembership message,
+    private static void addBody(final MailboxMembership<?> message,
             MessageResultImpl messageResult) {
         final Content content = createBodyContent(message);
         messageResult.setBody(content);
     }
 
-    private static void addHeaders(final MailboxMembership message,
+    private static void addHeaders(final MailboxMembership<?> message,
             MessageResultImpl messageResult) {
         final List<MessageResult.Header> headers = createHeaders(message);
         messageResult.setHeaders(headers);
     }
 
     private static void addPartContent(final FetchGroup fetchGroup,
-            MailboxMembership message, MessageResultImpl messageResult)
+            MailboxMembership<?> message, MessageResultImpl messageResult)
             throws MailboxException, IOException,
             MimeException {
         Collection<FetchGroup.PartContentDescriptor> partContent = fetchGroup.getPartContentDescriptors();
@@ -186,7 +186,7 @@ public class ResultUtils {
     }
 
     private static void addPartContent(
-            FetchGroup.PartContentDescriptor descriptor, MailboxMembership message,
+            FetchGroup.PartContentDescriptor descriptor, MailboxMembership<?> message,
             MessageResultImpl messageResult) throws 
             MailboxException, IOException, MimeException {
         final MimePath mimePath = descriptor.path();
@@ -208,7 +208,7 @@ public class ResultUtils {
         }
     }
 
-    private static PartContentBuilder build(int[] path, final MailboxMembership message)
+    private static PartContentBuilder build(int[] path, final MailboxMembership<?> message)
             throws IOException, MimeException {
         final InputStream stream = toInput(message);
         PartContentBuilder result = new PartContentBuilder();
@@ -232,7 +232,7 @@ public class ResultUtils {
      * @param membership
      * @return stream
      */
-    public static InputStream toInput(final MailboxMembership membership) {
+    public static InputStream toInput(final MailboxMembership<?> membership) {
         final org.apache.james.imap.store.mail.model.Document document = membership.getDocument();
         return toInput(document);
     }
@@ -297,7 +297,7 @@ public class ResultUtils {
         return result;
     }
 
-    private static void addHeaders(MailboxMembership message,
+    private static void addHeaders(MailboxMembership<?> message,
             MessageResultImpl messageResult, MimePath mimePath)
             throws IOException, MimeException {
         final int[] path = path(mimePath);
@@ -310,7 +310,7 @@ public class ResultUtils {
         }
     }
 
-    private static void addMimeHeaders(MailboxMembership message,
+    private static void addMimeHeaders(MailboxMembership<?> message,
             MessageResultImpl messageResult, MimePath mimePath)
             throws IOException, MimeException {
         final int[] path = path(mimePath);
@@ -323,7 +323,7 @@ public class ResultUtils {
         }
     }
 
-    private static void addBodyContent(MailboxMembership message,
+    private static void addBodyContent(MailboxMembership<?> message,
             MessageResultImpl messageResult, MimePath mimePath) throws IOException, MimeException {
         final int[] path = path(mimePath);
         if (path == null) {
@@ -335,7 +335,7 @@ public class ResultUtils {
         }
     }
 
-    private static void addMimeBodyContent(MailboxMembership message,
+    private static void addMimeBodyContent(MailboxMembership<?> message,
             MessageResultImpl messageResult, MimePath mimePath)
             throws IOException, MimeException {
         final int[] path = path(mimePath);
@@ -344,7 +344,7 @@ public class ResultUtils {
         messageResult.setMimeBodyContent(mimePath, content);
     }
 
-    private static void addFullContent(MailboxMembership message,
+    private static void addFullContent(MailboxMembership<?> message,
             MessageResultImpl messageResult, MimePath mimePath)
             throws MailboxException, IOException,
             MimeException {
@@ -364,14 +364,14 @@ public class ResultUtils {
      * 
      * @return {@link Comparator}, not null
      */
-    public static Comparator<MailboxMembership> getUidComparator() {
+    public static Comparator<MailboxMembership<?>> getUidComparator() {
         return UidComparator.INSTANCE;
     }
 
-    private static final class UidComparator implements Comparator<MailboxMembership> {
+    private static final class UidComparator implements Comparator<MailboxMembership<?>> {
         private static final UidComparator INSTANCE = new UidComparator();
 
-        public int compare(MailboxMembership one, MailboxMembership two) {
+        public int compare(MailboxMembership<?> one, MailboxMembership<?> two) {
             final int result = (int) (one.getUid() - two.getUid());
             return result;
         }

Modified: james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java (original)
+++ james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java Mon Mar 22 17:52:55 2010
@@ -64,18 +64,18 @@ import org.apache.james.mime4j.parser.Mi
  * 
  *
  */
-public abstract class StoreMailbox implements org.apache.james.imap.mailbox.Mailbox {
+public abstract class StoreMailbox<Id> implements org.apache.james.imap.mailbox.Mailbox {
 
     private static final int INITIAL_SIZE_FLAGS = 32;
 
     private static final int INITIAL_SIZE_HEADERS = 32;
 
-    protected final long mailboxId;
+    protected final Id mailboxId;
 
     private final UidChangeTracker tracker;
     private final MailboxSession session;
     
-    public StoreMailbox(final Mailbox mailbox, final MailboxSession session) {
+    public StoreMailbox(final Mailbox<Id> mailbox, final MailboxSession session) {
         this.mailboxId = mailbox.getMailboxId();
         this.tracker = new UidChangeTracker(mailbox.getLastUid());
         this.session = session;
@@ -96,24 +96,24 @@ public abstract class StoreMailbox imple
      * @param uid
      * @return membershipCopy
      */
-    protected abstract MailboxMembership copyMessage(MailboxMembership originalMessage, long uid);
+    protected abstract MailboxMembership<Id> copyMessage(MailboxMembership<Id> originalMessage, long uid);
     
     /**
      * Create a new {@link MessageMapper} to use
      * 
      * @return mapper
      */
-    protected abstract MessageMapper createMessageMapper(MailboxSession session) throws MailboxException;
+    protected abstract MessageMapper<Id> createMessageMapper(MailboxSession session) throws MailboxException;
     
     
-    protected abstract Mailbox getMailboxRow() throws MailboxException;
+    protected abstract Mailbox<Id> getMailboxRow() throws MailboxException;
 
     /**
      * Return the Id of the wrapped {@link Mailbox}
      * 
      * @return id
      */
-    protected long getMailboxId() {
+    protected Id getMailboxId() {
         return mailboxId;
     }
 
@@ -122,7 +122,7 @@ public abstract class StoreMailbox imple
      * @see org.apache.james.imap.mailbox.Mailbox#getMessageCount(org.apache.james.imap.mailbox.MailboxSession)
      */
     public int getMessageCount(MailboxSession mailboxSession) throws MailboxException {
-        final MessageMapper messageMapper = createMessageMapper(session);
+        final MessageMapper<Id> messageMapper = createMessageMapper(session);
         return (int) messageMapper.countMessagesInMailbox();
     }
 
@@ -133,7 +133,7 @@ public abstract class StoreMailbox imple
     public long appendMessage(byte[] messageBytes, Date internalDate,
             MailboxSession mailboxSession, boolean isRecent, Flags flagsToBeSet)
     throws MailboxException {
-        final Mailbox mailbox = reserveNextUid();
+        final Mailbox<Id> mailbox = reserveNextUid();
         if (mailbox == null) {
             throw new MailboxNotFoundException("Mailbox has been deleted");
         } else {
@@ -153,6 +153,7 @@ public abstract class StoreMailbox imple
                 final int bodyStartOctet = bodyStartOctet(messageBytes);
                 
                 final MimeTokenStream parser = MimeTokenStream.createMaximalDescriptorStream();
+               
                 parser.setRecursionMode(MimeTokenStream.M_NO_RECURSE);
                 parser.parse(new ByteArrayInputStream(messageBytes));
                 final List<Header> headers = new ArrayList<Header>(INITIAL_SIZE_HEADERS);
@@ -238,8 +239,8 @@ public abstract class StoreMailbox imple
                     flags.add(Flags.Flag.RECENT);
                 }
                 
-                final MailboxMembership message = createMessage(internalDate, uid, size, bodyStartOctet, messageBytes, flags, headers, propertyBuilder);
-                final MessageMapper mapper = createMessageMapper(session);
+                final MailboxMembership<Id> message = createMessage(internalDate, uid, size, bodyStartOctet, messageBytes, flags, headers, propertyBuilder);
+                final MessageMapper<Id> mapper = createMessageMapper(session);
 
                 mapper.execute(new TransactionalMapper.Transaction() {
 
@@ -293,7 +294,7 @@ public abstract class StoreMailbox imple
      * @param propertyBuilder
      * @return membership
      */
-    protected abstract MailboxMembership createMessage(Date internalDate, final long uid, final int size, int bodyStartOctet, 
+    protected abstract MailboxMembership<Id> createMessage(Date internalDate, final long uid, final int size, int bodyStartOctet, 
             final byte[] document, final Flags flags, final List<Header> headers, PropertyBuilder propertyBuilder);
     
     /**
@@ -313,7 +314,7 @@ public abstract class StoreMailbox imple
      * @return mailbox
      * @throws MailboxException
      */
-    protected abstract Mailbox reserveNextUid() throws  MailboxException;
+    protected abstract Mailbox<Id> reserveNextUid() throws  MailboxException;
 
     /*
      * (non-Javadoc)
@@ -322,24 +323,24 @@ public abstract class StoreMailbox imple
     public Iterator<MessageResult> getMessages(final MessageRange set, FetchGroup fetchGroup,
             MailboxSession mailboxSession) throws MailboxException {
         UidRange range = uidRangeForMessageSet(set);
-        final MessageMapper messageMapper = createMessageMapper(session);
-        final List<MailboxMembership> rows = new ArrayList<MailboxMembership>(messageMapper.findInMailbox(set));
+        final MessageMapper<Id> messageMapper = createMessageMapper(session);
+        final List<MailboxMembership<Id>> rows = new ArrayList<MailboxMembership<Id>>(messageMapper.findInMailbox(set));
         return getMessages(fetchGroup, range, rows);
     }
 
-    private ResultIterator getMessages(FetchGroup result, UidRange range, List<MailboxMembership> messages) {
+    private ResultIterator<Id> getMessages(FetchGroup result, UidRange range, List<MailboxMembership<Id>> messages) {
         final Map<Long, Flags> flagsByIndex = new HashMap<Long, Flags>();
-        for (MailboxMembership member:messages) {
+        for (MailboxMembership<Id> member:messages) {
             flagsByIndex.put(member.getUid(), member.createFlags());
         }
-        final ResultIterator results = getResults(result, messages);
+        final ResultIterator<Id> results = getResults(result, messages);
         tracker.found(range, flagsByIndex);
         return results;
     }
 
-    private ResultIterator getResults(FetchGroup result, List<MailboxMembership> messages) {
+    private ResultIterator<Id> getResults(FetchGroup result, List<MailboxMembership<Id>> messages) {
         Collections.sort(messages, ResultUtils.getUidComparator());
-        final ResultIterator results = new ResultIterator(messages,result);
+        final ResultIterator<Id> results = new ResultIterator<Id>(messages,result);
         return results;
     }
 
@@ -362,15 +363,15 @@ public abstract class StoreMailbox imple
     }
 
     private long[] recent(final boolean reset, MailboxSession mailboxSession) throws MailboxException {
-        final MessageMapper mapper = createMessageMapper(session);
+        final MessageMapper<Id> mapper = createMessageMapper(session);
         final List<Long> results = new ArrayList<Long>();
 
         mapper.execute(new TransactionalMapper.Transaction() {
 
             public void run() throws MailboxException {
-                final List<MailboxMembership> members = mapper.findRecentMessagesInMailbox();
+                final List<MailboxMembership<Id>> members = mapper.findRecentMessagesInMailbox();
 
-                for (MailboxMembership member:members) {
+                for (MailboxMembership<Id> member:members) {
                     results.add(member.getUid());
                     if (reset) {
                         member.unsetRecent();
@@ -386,12 +387,12 @@ public abstract class StoreMailbox imple
 
     private Long getFirstUnseen(MailboxSession mailboxSession) throws MailboxException {
         try {
-            final MessageMapper messageMapper = createMessageMapper(session);
-            final List<MailboxMembership> members = messageMapper.findUnseenMessagesInMailbox();
-            final Iterator<MailboxMembership> it = members.iterator();
+            final MessageMapper<Id> messageMapper = createMessageMapper(session);
+            final List<MailboxMembership<Id>> members = messageMapper.findUnseenMessagesInMailbox();
+            final Iterator<MailboxMembership<Id>> it = members.iterator();
             final Long result;
             if (it.hasNext()) {
-                final MailboxMembership member = it.next();
+                final MailboxMembership<Id> member = it.next();
                 result = member.getUid();
                 tracker.found(result, member.createFlags());
             } else {
@@ -404,7 +405,7 @@ public abstract class StoreMailbox imple
     }
 
     private int getUnseenCount(MailboxSession mailboxSession) throws MailboxException {
-        final MessageMapper messageMapper = createMessageMapper(session);
+        final MessageMapper<Id> messageMapper = createMessageMapper(session);
         final int count = (int) messageMapper.countUnseenMessagesInMailbox();
         return count;
     }
@@ -419,14 +420,14 @@ public abstract class StoreMailbox imple
 
     private Iterator<Long> doExpunge(final MessageRange set)
     throws MailboxException {
-        final MessageMapper mapper = createMessageMapper(session);
+        final MessageMapper<Id> mapper = createMessageMapper(session);
         final Collection<Long> uids = new TreeSet<Long>();
         
         mapper.execute(new TransactionalMapper.Transaction() {
 
             public void run() throws MailboxException {
-                final List<MailboxMembership> members = mapper.findMarkedForDeletionInMailbox(set);
-                for (MailboxMembership message:members) {
+                final List<MailboxMembership<Id>> members = mapper.findMarkedForDeletionInMailbox(set);
+                for (MailboxMembership<Id> message:members) {
                     uids.add(message.getUid());
                     mapper.delete(message);
                 }  
@@ -449,14 +450,14 @@ public abstract class StoreMailbox imple
 
     private Map<Long, Flags> doSetFlags(final Flags flags, final boolean value, final boolean replace,
             final MessageRange set, final MailboxSession mailboxSession) throws MailboxException {
-        final MessageMapper mapper = createMessageMapper(session);
+        final MessageMapper<Id> mapper = createMessageMapper(session);
         final SortedMap<Long, Flags> newFlagsByUid = new TreeMap<Long, Flags>();
         final Map<Long, Flags> originalFlagsByUid = new HashMap<Long, Flags>(INITIAL_SIZE_FLAGS);
         mapper.execute(new TransactionalMapper.Transaction(){
 
             public void run() throws MailboxException {
-                final List<MailboxMembership> members = mapper.findInMailbox(set);
-                for (final MailboxMembership member:members) {
+                final List<MailboxMembership<Id>> members = mapper.findInMailbox(set);
+                for (final MailboxMembership<Id> member:members) {
                     originalFlagsByUid.put(member.getUid(), member.createFlags());
                     if (replace) {
                         member.setFlags(flags);
@@ -490,7 +491,7 @@ public abstract class StoreMailbox imple
     }
 
     private long getUidNext(MailboxSession mailboxSession) throws MailboxException {
-        Mailbox mailbox = getMailboxRow();
+        Mailbox<Id> mailbox = getMailboxRow();
         if (mailbox == null) {
             throw new MailboxNotFoundException("Mailbox has been deleted");
         } else {
@@ -504,10 +505,10 @@ public abstract class StoreMailbox imple
      * @see org.apache.james.imap.mailbox.Mailbox#search(org.apache.james.imap.mailbox.SearchQuery, org.apache.james.imap.mailbox.MailboxSession)
      */
     public Iterator<Long> search(SearchQuery query, MailboxSession mailboxSession) throws MailboxException {
-        final MessageMapper messageMapper = createMessageMapper(session);
-        final List<MailboxMembership> members = messageMapper.searchMailbox(query);
+        final MessageMapper<Id> messageMapper = createMessageMapper(session);
+        final List<MailboxMembership<Id>> members = messageMapper.searchMailbox(query);
         final Set<Long> uids = new TreeSet<Long>();
-        for (MailboxMembership member:members) {
+        for (MailboxMembership<Id> member:members) {
             try {
                 final MessageSearches searches = new MessageSearches();
                 searches.setLog(mailboxSession.getLog());
@@ -536,19 +537,19 @@ public abstract class StoreMailbox imple
     }
     
 
-    private void copy(final List<MailboxMembership> originalRows, MailboxSession session) throws MailboxException {
+    private void copy(final List<MailboxMembership<Id>> originalRows, MailboxSession session) throws MailboxException {
         try {
-            final List<MailboxMembership> copiedRows = new ArrayList<MailboxMembership>();
-            final MessageMapper mapper = createMessageMapper(session);
+            final List<MailboxMembership<Id>> copiedRows = new ArrayList<MailboxMembership<Id>>();
+            final MessageMapper<Id> mapper = createMessageMapper(session);
             mapper.execute(new TransactionalMapper.Transaction() {
 
                 public void run() throws MailboxException {
-                    for (MailboxMembership originalMessage:originalRows) {
+                    for (MailboxMembership<Id> originalMessage:originalRows) {
 
-                        final Mailbox mailbox = reserveNextUid();
+                        final Mailbox<Id> mailbox = reserveNextUid();
                         if (mailbox != null) {
                             long uid = mailbox.getLastUid();
-                            final MailboxMembership newRow = copyMessage(originalMessage, uid);
+                            final MailboxMembership<Id> newRow = copyMessage(originalMessage, uid);
                             mapper.save(newRow);
                             copiedRows.add(newRow);
                         }
@@ -559,7 +560,7 @@ public abstract class StoreMailbox imple
             
             
             // Wait until commit before issuing events
-            for (MailboxMembership newMember:copiedRows) {
+            for (MailboxMembership<Id> newMember:copiedRows) {
                 tracker.found(newMember.getUid(), newMember.createFlags());
             }
             
@@ -568,11 +569,11 @@ public abstract class StoreMailbox imple
         }
     }
 
-    public void copyTo(MessageRange set, StoreMailbox toMailbox, MailboxSession session) throws MailboxException {
+    public void copyTo(MessageRange set, StoreMailbox<Id> toMailbox, MailboxSession session) throws MailboxException {
         try {
-            final MessageMapper mapper = createMessageMapper(session);
+            final MessageMapper<Id> mapper = createMessageMapper(session);
             
-            final List<MailboxMembership> originalRows = mapper.findInMailbox(set);
+            final List<MailboxMembership<Id>> originalRows = mapper.findInMailbox(set);
             toMailbox.copy(originalRows, session);
 
         } catch (MessagingException e) {

Modified: james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailboxManager.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailboxManager.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailboxManager.java (original)
+++ james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailboxManager.java Mon Mar 22 17:52:55 2010
@@ -47,18 +47,17 @@ import org.apache.james.imap.mailbox.Sub
 import org.apache.james.imap.mailbox.MailboxMetaData.Selectability;
 import org.apache.james.imap.mailbox.util.SimpleMailboxMetaData;
 import org.apache.james.imap.store.mail.MailboxMapper;
-import org.apache.james.imap.store.mail.MessageMapper;
 import org.apache.james.imap.store.mail.model.Mailbox;
 import org.apache.james.imap.store.transaction.TransactionalMapper;
 
-public abstract class StoreMailboxManager extends AbstractLogEnabled implements MailboxManager {
+public abstract class StoreMailboxManager<Id> extends AbstractLogEnabled implements MailboxManager {
     public static final String USER_NAMESPACE_PREFIX = "#mail";
     
     public static final char SQL_WILDCARD_CHAR = '%';
 
     private final static Random random = new Random();
 
-    protected final Map<String, StoreMailbox> mailboxes;
+    protected final Map<String, StoreMailbox<Id>> mailboxes;
 
     private final Authenticator authenticator;    
     private final Subscriber subscriber;    
@@ -73,7 +72,7 @@ public abstract class StoreMailboxManage
 
     
     public StoreMailboxManager(final Authenticator authenticator, final Subscriber subscriber, final char delimiter) {
-        mailboxes = new HashMap<String, StoreMailbox>();
+        mailboxes = new HashMap<String, StoreMailbox<Id>>();
         this.authenticator = authenticator;
         this.subscriber = subscriber;
         this.delimiter = delimiter;
@@ -85,14 +84,14 @@ public abstract class StoreMailboxManage
      * @param mailboxRow
      * @return storeMailbox
      */
-    protected abstract StoreMailbox createMailbox(Mailbox mailboxRow, MailboxSession session);
+    protected abstract StoreMailbox<Id> createMailbox(Mailbox<Id> mailboxRow, MailboxSession session);
     
     /**
      * Create the MailboxMapper which should get used 
      * 
      * @return mailboxMapper
      */
-    protected abstract MailboxMapper createMailboxMapper(MailboxSession session) throws MailboxException;
+    protected abstract MailboxMapper<Id> createMailboxMapper(MailboxSession session) throws MailboxException;
     
     /**
      * Create a Mailbox for the given namespace and store it to the underlying storage
@@ -119,10 +118,10 @@ public abstract class StoreMailboxManage
      * @return mailbox the mailbox for the given name
      * @throws MailboxException get thrown if no Mailbox could be found for the given name
      */
-    private StoreMailbox doGetMailbox(String mailboxName, MailboxSession session) throws MailboxException {
+    private StoreMailbox<Id> doGetMailbox(String mailboxName, MailboxSession session) throws MailboxException {
         synchronized (mailboxes) {
-            final MailboxMapper mapper = createMailboxMapper(session);
-            Mailbox mailboxRow = mapper.findMailboxByName(mailboxName);
+            final MailboxMapper<Id> mapper = createMailboxMapper(session);
+            Mailbox<Id> mailboxRow = mapper.findMailboxByName(mailboxName);
             
             if (mailboxRow == null) {
                 getLog().info("Mailbox '" + mailboxName + "' not found.");
@@ -131,7 +130,7 @@ public abstract class StoreMailboxManage
             } else {
                 getLog().debug("Loaded mailbox " + mailboxName);
 
-                StoreMailbox result = (StoreMailbox) mailboxes.get(mailboxName);
+                StoreMailbox<Id> result = (StoreMailbox<Id>) mailboxes.get(mailboxName);
                 if (result == null) {
                     result = createMailbox(mailboxRow, session);
                     mailboxes.put(mailboxName, result);
@@ -196,12 +195,12 @@ public abstract class StoreMailboxManage
         synchronized (mailboxes) {
             // TODO put this into a serilizable transaction
             
-            final MailboxMapper mapper = createMailboxMapper(session);
+            final MailboxMapper<Id> mapper = createMailboxMapper(session);
             
             mapper.execute(new TransactionalMapper.Transaction() {
 
                 public void run() throws MailboxException {
-                    Mailbox mailbox = mapper.findMailboxByName(mailboxName);
+                    Mailbox<Id> mailbox = mapper.findMailboxByName(mailboxName);
                     if (mailbox == null) {
                         throw new MailboxNotFoundException("Mailbox not found");
                     }
@@ -210,7 +209,7 @@ public abstract class StoreMailboxManage
                 
             });
             
-            final StoreMailbox storeMailbox = mailboxes.remove(mailboxName);
+            final StoreMailbox<Id> storeMailbox = mailboxes.remove(mailboxName);
             if (storeMailbox != null) {
                 storeMailbox.deleted(session);
             }
@@ -230,12 +229,12 @@ public abstract class StoreMailboxManage
                 throw new MailboxExistsException(to);
             }
 
-            final MailboxMapper mapper = createMailboxMapper(session);                
+            final MailboxMapper<Id> mapper = createMailboxMapper(session);                
             mapper.execute(new TransactionalMapper.Transaction() {
 
                 public void run() throws MailboxException {
                     // TODO put this into a serilizable transaction
-                    final Mailbox mailbox = mapper.findMailboxByName(from);
+                    final Mailbox<Id> mailbox = mapper.findMailboxByName(from);
 
                     if (mailbox == null) {
                         throw new MailboxNotFoundException(from);
@@ -246,8 +245,8 @@ public abstract class StoreMailboxManage
                     changeMailboxName(from, to);
 
                     // rename submailbox
-                    final List<Mailbox> subMailboxes = mapper.findMailboxWithNameLike(from + delimiter + "%");
-                    for (Mailbox sub:subMailboxes) {
+                    final List<Mailbox<Id>> subMailboxes = mapper.findMailboxWithNameLike(from + delimiter + "%");
+                    for (Mailbox<Id> sub:subMailboxes) {
                         final String subOriginalName = sub.getName();
                         final String subNewName = to + subOriginalName.substring(from.length());
                         sub.setName(subNewName);
@@ -279,7 +278,7 @@ public abstract class StoreMailboxManage
      * @param to not null
      */
     private void changeMailboxName(String from, String to) {
-        final StoreMailbox jpaMailbox = mailboxes.remove(from);
+        final StoreMailbox<Id> jpaMailbox = mailboxes.remove(from);
         if (jpaMailbox != null) {
             jpaMailbox.reportRenamed(to);
             mailboxes.put(to, jpaMailbox);
@@ -292,8 +291,8 @@ public abstract class StoreMailboxManage
      */
     public void copyMessages(MessageRange set, String from, String to,
             MailboxSession session) throws MailboxException {
-        StoreMailbox toMailbox = doGetMailbox(to, session);
-        StoreMailbox fromMailbox = doGetMailbox(from, session);
+        StoreMailbox<Id> toMailbox = doGetMailbox(to, session);
+        StoreMailbox<Id> fromMailbox = doGetMailbox(from, session);
         fromMailbox.copyTo(set, toMailbox, session);
     }
 
@@ -317,10 +316,10 @@ public abstract class StoreMailboxManage
                 delimiter).replace(freeWildcard, SQL_WILDCARD_CHAR)
                 .replace(localWildcard, SQL_WILDCARD_CHAR);
 
-        final MailboxMapper mapper = createMailboxMapper(session);
-        final List<Mailbox> mailboxes = mapper.findMailboxWithNameLike(search);
+        final MailboxMapper<Id> mapper = createMailboxMapper(session);
+        final List<Mailbox<Id>> mailboxes = mapper.findMailboxWithNameLike(search);
         final List<MailboxMetaData> results = new ArrayList<MailboxMetaData>(mailboxes.size());
-        for (Mailbox mailbox: mailboxes) {
+        for (Mailbox<Id> mailbox: mailboxes) {
             final String name = mailbox.getName();
             if (name.startsWith(base)) {
                 final String match = name.substring(baseLength);
@@ -347,7 +346,7 @@ public abstract class StoreMailboxManage
      * @throws StorageException 
      * @throws TorqueException
      */
-    private boolean hasChildren(String name, final MailboxMapper mapper) throws StorageException {
+    private boolean hasChildren(String name, final MailboxMapper<Id> mapper) throws StorageException {
         return mapper.existsMailboxStartingWith(name + delimiter);
     }
 
@@ -357,7 +356,7 @@ public abstract class StoreMailboxManage
      */
     public boolean mailboxExists(String mailboxName, MailboxSession session) throws MailboxException {
         synchronized (mailboxes) {
-            final MailboxMapper mapper = createMailboxMapper(session);
+            final MailboxMapper<Id> mapper = createMailboxMapper(session);
             final long count = mapper.countMailboxesWithName(mailboxName);
             if (count == 0) {
                 mailboxes.remove(mailboxName);
@@ -460,7 +459,7 @@ public abstract class StoreMailboxManage
      * @see org.apache.james.imap.mailbox.MailboxManager#addListener(java.lang.String, org.apache.james.imap.mailbox.MailboxListener, org.apache.james.imap.mailbox.MailboxSession)
      */
     public void addListener(String mailboxName, MailboxListener listener, MailboxSession session) throws MailboxException {
-        final StoreMailbox mailbox = doGetMailbox(mailboxName,session);
+        final StoreMailbox<Id> mailbox = doGetMailbox(mailboxName,session);
         mailbox.addListener(listener);
     }
 

Modified: james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/MailboxMapper.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/MailboxMapper.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/MailboxMapper.java (original)
+++ james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/MailboxMapper.java Mon Mar 22 17:52:55 2010
@@ -29,7 +29,7 @@ import org.apache.james.imap.store.trans
  * Mapper for {@link Mailbox}
  *
  */
-public interface MailboxMapper extends TransactionalMapper{
+public interface MailboxMapper<Id> extends TransactionalMapper{
     
     /**
      * Save the give {@link Mailbox} to the underlying storage
@@ -37,7 +37,7 @@ public interface MailboxMapper extends T
      * @param mailbox
      * @throws StorageException
      */
-    public abstract void save(Mailbox mailbox) throws StorageException;
+    public abstract void save(Mailbox<Id> mailbox) throws StorageException;
 
     /**
      * Return the {@link Mailbox} for the given name
@@ -47,7 +47,7 @@ public interface MailboxMapper extends T
      * @throws StorageException
      * @throws MailboxNotFoundException
      */
-    public abstract Mailbox findMailboxByName(String name)
+    public abstract Mailbox<Id> findMailboxByName(String name)
             throws StorageException, MailboxNotFoundException;
 
     /**
@@ -65,7 +65,7 @@ public interface MailboxMapper extends T
      * @param mailbox
      * @throws StorageException
      */
-    public abstract void delete(Mailbox mailbox) throws StorageException;
+    public abstract void delete(Mailbox<Id> mailbox) throws StorageException;
 
     /**
      * Return a List of {@link Mailbox} which name is like the given name
@@ -74,7 +74,7 @@ public interface MailboxMapper extends T
      * @return mailboxList
      * @throws StorageException
      */
-    public abstract List<Mailbox> findMailboxWithNameLike(String name)
+    public abstract List<Mailbox<Id>> findMailboxWithNameLike(String name)
             throws StorageException;
 
     /**
@@ -102,6 +102,6 @@ public interface MailboxMapper extends T
      * @throws StorageException
      * @throws MailboxNotFoundException
      */
-    public abstract Mailbox findMailboxById(long mailboxId)
+    public abstract Mailbox<Id> findMailboxById(Id mailboxId)
             throws StorageException, MailboxNotFoundException;
 }
\ No newline at end of file

Modified: james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/MessageMapper.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/MessageMapper.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/MessageMapper.java (original)
+++ james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/MessageMapper.java Mon Mar 22 17:52:55 2010
@@ -31,7 +31,7 @@ import org.apache.james.imap.store.trans
 /**
  * Maps {@link Document} in a {@link Mailbox}.
  */
-public interface MessageMapper extends TransactionalMapper {
+public interface MessageMapper<Id> extends TransactionalMapper {
 
     /**
      * Return a List of {@link MailboxMembership} which represent the given {@link MessageRange}
@@ -41,7 +41,7 @@ public interface MessageMapper extends T
      * @return list
      * @throws StorageException
      */
-    public abstract List<MailboxMembership> findInMailbox(MessageRange set)
+    public abstract List<MailboxMembership<Id>> findInMailbox(MessageRange set)
             throws StorageException;
 
     /**
@@ -51,7 +51,7 @@ public interface MessageMapper extends T
      * @return list
      * @throws StorageException
      */
-    public abstract List<MailboxMembership> findMarkedForDeletionInMailbox(
+    public abstract List<MailboxMembership<Id>> findMarkedForDeletionInMailbox(
             final MessageRange set)
             throws StorageException;
 
@@ -80,7 +80,7 @@ public interface MessageMapper extends T
      * @return
      * @throws StorageException
      */
-    public abstract List<MailboxMembership> searchMailbox(SearchQuery query) throws StorageException;
+    public abstract List<MailboxMembership<Id>> searchMailbox(SearchQuery query) throws StorageException;
 
     /**
      * Delete the given {@link MailboxMembership}
@@ -88,7 +88,7 @@ public interface MessageMapper extends T
      * @param message
      * @throws StorageException
      */
-    public abstract void delete(MailboxMembership message) throws StorageException;
+    public abstract void delete(MailboxMembership<Id> message) throws StorageException;
 
     /**
      * Return a List of {@link MailboxMembership} which are unseen. 
@@ -97,7 +97,7 @@ public interface MessageMapper extends T
      * @return list
      * @throws StorageException
      */
-    public abstract List<MailboxMembership> findUnseenMessagesInMailbox() throws StorageException;
+    public abstract List<MailboxMembership<Id>> findUnseenMessagesInMailbox() throws StorageException;
 
     /**
      * Return a List of {@link MailboxMembership} which are recent.
@@ -106,7 +106,7 @@ public interface MessageMapper extends T
      * @return recentList
      * @throws StorageException
      */
-    public abstract List<MailboxMembership> findRecentMessagesInMailbox() throws StorageException;
+    public abstract List<MailboxMembership<Id>> findRecentMessagesInMailbox() throws StorageException;
 
 
     /**
@@ -115,6 +115,6 @@ public interface MessageMapper extends T
      * @param message
      * @throws StorageException
      */
-    public abstract void save(MailboxMembership message) throws StorageException;
+    public abstract void save(MailboxMembership<Id> message) throws StorageException;
 
 }
\ No newline at end of file

Modified: james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/AbstractMailboxMembership.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/AbstractMailboxMembership.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/AbstractMailboxMembership.java (original)
+++ james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/AbstractMailboxMembership.java Mon Mar 22 17:52:55 2010
@@ -1,57 +1,57 @@
-/****************************************************************
- * Licensed to the Apache Software Foundation (ASF) under one   *
- * or more contributor license agreements.  See the NOTICE file *
- * distributed with this work for additional information        *
- * regarding copyright ownership.  The ASF licenses this file   *
- * to you under the Apache License, Version 2.0 (the            *
- * "License"); you may not use this file except in compliance   *
- * with the License.  You may obtain a copy of the License at   *
- *                                                              *
- *   http://www.apache.org/licenses/LICENSE-2.0                 *
- *                                                              *
- * Unless required by applicable law or agreed to in writing,   *
- * software distributed under the License is distributed on an  *
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
- * KIND, either express or implied.  See the License for the    *
- * specific language governing permissions and limitations      *
- * under the License.                                           *
- ****************************************************************/
-package org.apache.james.imap.store.mail.model;
-
-import javax.mail.Flags;
-
-/**
- * Abstract base class for MailboxMembership implementations
- * 
- *
- */
-public abstract class AbstractMailboxMembership implements MailboxMembership{
-
-
-    /**
-     * @see org.apache.james.imap.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;
-    }
-}
+/****************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one   *
+ * or more contributor license agreements.  See the NOTICE file *
+ * distributed with this work for additional information        *
+ * regarding copyright ownership.  The ASF licenses this file   *
+ * to you under the Apache License, Version 2.0 (the            *
+ * "License"); you may not use this file except in compliance   *
+ * with the License.  You may obtain a copy of the License at   *
+ *                                                              *
+ *   http://www.apache.org/licenses/LICENSE-2.0                 *
+ *                                                              *
+ * Unless required by applicable law or agreed to in writing,   *
+ * software distributed under the License is distributed on an  *
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY       *
+ * KIND, either express or implied.  See the License for the    *
+ * specific language governing permissions and limitations      *
+ * under the License.                                           *
+ ****************************************************************/
+package org.apache.james.imap.store.mail.model;
+
+import javax.mail.Flags;
+
+/**
+ * Abstract base class for MailboxMembership implementations
+ * 
+ *
+ */
+public abstract class AbstractMailboxMembership<Id> implements MailboxMembership<Id>{
+
+
+    /**
+     * @see org.apache.james.imap.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;
+    }
+}

Modified: james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/Mailbox.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/Mailbox.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/Mailbox.java (original)
+++ james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/Mailbox.java Mon Mar 22 17:52:55 2010
@@ -21,7 +21,7 @@ package org.apache.james.imap.store.mail
 /**
  * Models long term mailbox data.
  */
-public interface Mailbox {
+public interface Mailbox<Id> {
 
     /**
      * Gets the last UID.
@@ -38,7 +38,7 @@ public interface Mailbox {
      * Gets the unique mailbox ID.
      * @return mailbox id
      */
-    public abstract long getMailboxId();
+    public abstract Id getMailboxId();
 
     /**
      * Gets the current name for this mailbox.

Modified: james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/MailboxMembership.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/MailboxMembership.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/MailboxMembership.java (original)
+++ james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/model/MailboxMembership.java Mon Mar 22 17:52:55 2010
@@ -25,7 +25,7 @@ import javax.mail.Flags;
 /**
  * Links mailbox to member messages.
  */
-public interface MailboxMembership {
+public interface MailboxMembership<Id> {
 
     public abstract Date getInternalDate();
 
@@ -34,7 +34,7 @@ public interface MailboxMembership {
      * 
      * @return mailboxId
      */
-    public abstract long getMailboxId();
+    public abstract Id getMailboxId();
 
     /**
      * Return the size

Modified: james/imap/trunk/store/src/test/java/org/apache/james/imap/store/SimpleMailboxMembership.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/store/src/test/java/org/apache/james/imap/store/SimpleMailboxMembership.java?rev=926222&r1=926221&r2=926222&view=diff
==============================================================================
--- james/imap/trunk/store/src/test/java/org/apache/james/imap/store/SimpleMailboxMembership.java (original)
+++ james/imap/trunk/store/src/test/java/org/apache/james/imap/store/SimpleMailboxMembership.java Mon Mar 22 17:52:55 2010
@@ -27,7 +27,7 @@ import javax.mail.Flags;
 import org.apache.james.imap.store.mail.model.Document;
 import org.apache.james.imap.store.mail.model.MailboxMembership;
 
-public class SimpleMailboxMembership implements MailboxMembership {
+public class SimpleMailboxMembership implements MailboxMembership<Long> {
     
     private static final String TOSTRING_SEPARATOR = " ";
     
@@ -86,7 +86,7 @@ public class SimpleMailboxMembership imp
     /**
      * @see org.apache.james.imap.jpa.mail.model.Document#getMailboxId()
      */
-    public long getMailboxId() {
+    public Long getMailboxId() {
         return mailboxId;
     }
 
@@ -201,6 +201,7 @@ public class SimpleMailboxMembership imp
         return result;
     }
 
+    @SuppressWarnings("unchecked")
     @Override
     public boolean equals(Object obj) {
         if (this == obj)
@@ -209,7 +210,7 @@ public class SimpleMailboxMembership imp
             return false;
         if (getClass() != obj.getClass())
             return false;
-        final MailboxMembership other = (MailboxMembership) obj;
+        final MailboxMembership<Long> other = (MailboxMembership<Long>) obj;
         if (mailboxId != other.getMailboxId())
             return false;
         if (uid != other.getUid())



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