Author: rdonkin
Date: Tue Jun  2 12:50:38 2009
New Revision: 781024

URL: http://svn.apache.org/viewvc?rev=781024&view=rev
Log:
IMAP-95 Alter MessageMapper API to tie it implicitly to a particular mailbox 
rather than passing in the ID. https://issues.apache.org/jira/browse/IMAP-95

Modified:
    james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java
    
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMessageMapper.java
    
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailbox.java
    
james/imap/trunk/store/src/main/java/org/apache/james/imap/store/mail/MessageMapper.java

Modified: 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java?rev=781024&r1=781023&r2=781024&view=diff
==============================================================================
--- 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java 
(original)
+++ 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/JPAMailbox.java 
Tue Jun  2 12:50:38 2009
@@ -61,7 +61,7 @@
     
     @Override
     protected MessageMapper createMessageMapper() {
-        final MessageMapper mapper = new 
JPAMessageMapper(entityManagerFactory.createEntityManager());
+        final MessageMapper mapper = new 
JPAMessageMapper(entityManagerFactory.createEntityManager(), mailboxId);
         return mapper;
     }
     

Modified: 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMessageMapper.java
URL: 
http://svn.apache.org/viewvc/james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMessageMapper.java?rev=781024&r1=781023&r2=781024&view=diff
==============================================================================
--- 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMessageMapper.java
 (original)
+++ 
james/imap/trunk/jpa/src/main/java/org/apache/james/imap/jpa/mail/JPAMessageMapper.java
 Tue Jun  2 12:50:38 2009
@@ -34,14 +34,17 @@
 
 public class JPAMessageMapper extends Mapper implements MessageMapper {
 
-    public JPAMessageMapper(EntityManager entityManager) {
+    private final long mailboxId;
+    
+    public JPAMessageMapper(final EntityManager entityManager, final long 
mailboxId) {
         super(entityManager);
+        this.mailboxId = mailboxId;
     }
 
     /**
-     * @see 
org.apache.james.imap.store.mail.MessageMapper#findInMailbox(org.apache.james.imap.mailbox.MessageRange,
 long)
+     * @see 
org.apache.james.imap.store.mail.MessageMapper#findInMailbox(org.apache.james.imap.mailbox.MessageRange)
      */
-    public List<MailboxMembership> findInMailbox(MessageRange set, long 
mailboxId) throws StorageException {
+    public List<MailboxMembership> findInMailbox(MessageRange set) throws 
StorageException {
         try {
             final List<MailboxMembership> results;
             switch (set.getType()) {
@@ -96,9 +99,9 @@
     }
 
     /**
-     * @see 
org.apache.james.imap.store.mail.MessageMapper#findMarkedForDeletionInMailbox(org.apache.james.imap.mailbox.MessageRange,
 long)
+     * @see 
org.apache.james.imap.store.mail.MessageMapper#findMarkedForDeletionInMailbox(org.apache.james.imap.mailbox.MessageRange)
      */
-    public List<MailboxMembership> findMarkedForDeletionInMailbox(final 
MessageRange set, final long mailboxId) throws StorageException {
+    public List<MailboxMembership> findMarkedForDeletionInMailbox(final 
MessageRange set) throws StorageException {
         try {
             final List<MailboxMembership> results;
             switch (set.getType()) {
@@ -153,9 +156,9 @@
     }
 
     /**
-     * @see 
org.apache.james.imap.store.mail.MessageMapper#countMessagesInMailbox(long)
+     * @see 
org.apache.james.imap.store.mail.MessageMapper#countMessagesInMailbox()
      */
-    public long countMessagesInMailbox(long mailboxId) throws StorageException 
{
+    public long countMessagesInMailbox() throws StorageException {
         try {
             return (Long) 
entityManager.createNamedQuery("countMessagesInMailbox").setParameter("idParam",
 mailboxId).getSingleResult();
         } catch (PersistenceException e) {
@@ -164,9 +167,9 @@
     }
 
     /**
-     * @see 
org.apache.james.imap.store.mail.MessageMapper#countUnseenMessagesInMailbox(long)
+     * @see 
org.apache.james.imap.store.mail.MessageMapper#countUnseenMessagesInMailbox()
      */
-    public long countUnseenMessagesInMailbox(long mailboxId) throws 
StorageException {
+    public long countUnseenMessagesInMailbox() throws StorageException {
         try {
             return (Long) 
entityManager.createNamedQuery("countUnseenMessagesInMailbox").setParameter("idParam",
 mailboxId).getSingleResult();
         } catch (PersistenceException e) {
@@ -175,10 +178,10 @@
     }
 
     /**
-     * @see org.apache.james.imap.store.mail.MessageMapper#searchMailbox(long, 
org.apache.james.imap.mailbox.SearchQuery)
+     * @see 
org.apache.james.imap.store.mail.MessageMapper#searchMailbox(org.apache.james.imap.mailbox.SearchQuery)
      */
     @SuppressWarnings("unchecked")
-    public List<MailboxMembership> searchMailbox(long mailboxId, SearchQuery 
query) throws StorageException {
+    public List<MailboxMembership> searchMailbox(SearchQuery query) throws 
StorageException {
         try {
             final String jql = formulateJQL(mailboxId, query);
             return entityManager.createQuery(jql).getResultList();
@@ -226,10 +229,10 @@
     }
 
     /**
-     * @see 
org.apache.james.imap.store.mail.MessageMapper#findUnseenMessagesInMailboxOrderByUid(long)
+     * @see 
org.apache.james.imap.store.mail.MessageMapper#findUnseenMessagesInMailboxOrderByUid()
      */
     @SuppressWarnings("unchecked")
-    public List<MailboxMembership> findUnseenMessagesInMailboxOrderByUid(final 
long mailboxId)  throws StorageException {
+    public List<MailboxMembership> findUnseenMessagesInMailboxOrderByUid()  
throws StorageException {
         try {
             return 
entityManager.createNamedQuery("findUnseenMessagesInMailboxOrderByUid").setParameter("idParam",
 mailboxId).getResultList();
         } catch (PersistenceException e) {
@@ -238,10 +241,10 @@
     }
 
     /**
-     * @see 
org.apache.james.imap.store.mail.MessageMapper#findRecentMessagesInMailbox(long)
+     * @see 
org.apache.james.imap.store.mail.MessageMapper#findRecentMessagesInMailbox()
      */
     @SuppressWarnings("unchecked")
-    public List<MailboxMembership> findRecentMessagesInMailbox(final long 
mailboxId) throws StorageException {
+    public List<MailboxMembership> findRecentMessagesInMailbox() throws 
StorageException {
         try {
             return 
entityManager.createNamedQuery("findRecentMessagesInMailbox").setParameter("idParam",
 mailboxId).getResultList();
         } catch (PersistenceException e) {

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=781024&r1=781023&r2=781024&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
 Tue Jun  2 12:50:38 2009
@@ -84,7 +84,7 @@
 
     public int getMessageCount(MailboxSession mailboxSession) throws 
MailboxException {
         final MessageMapper messageMapper = createMessageMapper();
-        return (int) messageMapper.countMessagesInMailbox(mailboxId);
+        return (int) messageMapper.countMessagesInMailbox();
     }
 
     public long appendMessage(byte[] messageBytes, Date internalDate,
@@ -242,7 +242,7 @@
             MailboxSession mailboxSession) throws MailboxException {
         UidRange range = uidRangeForMessageSet(set);
         final MessageMapper messageMapper = createMessageMapper();
-        final List<MailboxMembership> rows = new 
ArrayList<MailboxMembership>(messageMapper.findInMailbox(set, mailboxId));
+        final List<MailboxMembership> rows = new 
ArrayList<MailboxMembership>(messageMapper.findInMailbox(set));
         return getMessages(fetchGroup, range, rows);
     }
 
@@ -291,7 +291,7 @@
     public long[] recent(boolean reset, MailboxSession mailboxSession) throws 
MailboxException {
         final MessageMapper mapper = createMessageMapper();
         mapper.begin();
-        final List<MailboxMembership> members = 
mapper.findRecentMessagesInMailbox(mailboxId);
+        final List<MailboxMembership> members = 
mapper.findRecentMessagesInMailbox();
         final long[] results = new long[members.size()];
 
         int count = 0;
@@ -309,7 +309,7 @@
     public Long getFirstUnseen(MailboxSession mailboxSession) throws 
MailboxException {
         try {
             final MessageMapper messageMapper = createMessageMapper();
-            final List<MailboxMembership> members = 
messageMapper.findUnseenMessagesInMailboxOrderByUid(mailboxId);
+            final List<MailboxMembership> members = 
messageMapper.findUnseenMessagesInMailboxOrderByUid();
             final Iterator<MailboxMembership> it = members.iterator();
             final Long result;
             if (it.hasNext()) {
@@ -327,7 +327,7 @@
 
     public int getUnseenCount(MailboxSession mailboxSession) throws 
MailboxException {
         final MessageMapper messageMapper = createMessageMapper();
-        final int count = (int) 
messageMapper.countUnseenMessagesInMailbox(mailboxId);
+        final int count = (int) messageMapper.countUnseenMessagesInMailbox();
         return count;
     }
 
@@ -339,7 +339,7 @@
     throws MailboxException {
         final MessageMapper mapper = createMessageMapper();
         mapper.begin();
-        final List<MailboxMembership> members = 
mapper.findMarkedForDeletionInMailbox(set, mailboxId);
+        final List<MailboxMembership> members = 
mapper.findMarkedForDeletionInMailbox(set);
         final Collection<Long> uids = new TreeSet<Long>();
         for (MailboxMembership message:members) {
             uids.add(message.getUid());
@@ -361,7 +361,7 @@
         final SortedMap<Long, Flags> newFlagsByUid = new TreeMap<Long, 
Flags>();
         final Map<Long, Flags> originalFlagsByUid = new HashMap<Long, 
Flags>(INITIAL_SIZE_FLAGS);
         mapper.begin();
-        final List<MailboxMembership> members = mapper.findInMailbox(set, 
mailboxId);
+        final List<MailboxMembership> members = mapper.findInMailbox(set);
         for (final MailboxMembership member:members) {
             originalFlagsByUid.put(member.getUid(), member.createFlags());
             if (replace) {
@@ -404,7 +404,7 @@
 
     public Iterator<Long> search(SearchQuery query, MailboxSession 
mailboxSession) throws MailboxException {
         final MessageMapper messageMapper = createMessageMapper();
-        final List<MailboxMembership> members = 
messageMapper.searchMailbox(mailboxId, query);
+        final List<MailboxMembership> members = 
messageMapper.searchMailbox(query);
         final Set<Long> uids = new TreeSet<Long>();
         for (MailboxMembership member:members) {
             try {
@@ -436,7 +436,7 @@
             mapper.begin();
 
             final List<MailboxMembership> copiedRows = new 
ArrayList<MailboxMembership>();
-            final List<MailboxMembership> originalRows = 
mapper.findInMailbox(set, mailboxId);
+            final List<MailboxMembership> originalRows = 
mapper.findInMailbox(set);
             for (MailboxMembership originalMessage:originalRows) {
 
                 final Mailbox mailbox = toMailbox.reserveNextUid();

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=781024&r1=781023&r2=781024&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
 Tue Jun  2 12:50:38 2009
@@ -25,38 +25,38 @@
 import org.apache.james.imap.mailbox.StorageException;
 import org.apache.james.imap.store.mail.model.MailboxMembership;
 
+/**
+ * Maps messages in a mailbox.
+ */
 public interface MessageMapper {
 
     public abstract void begin() throws StorageException;
     
     public abstract void commit() throws StorageException;
     
-    public abstract List<MailboxMembership> findInMailbox(MessageRange set, 
long mailboxId)
+    public abstract List<MailboxMembership> findInMailbox(MessageRange set)
             throws StorageException;
 
     public abstract List<MailboxMembership> findMarkedForDeletionInMailbox(
-            final MessageRange set, final long mailboxId)
+            final MessageRange set)
             throws StorageException;
 
-    public abstract long countMessagesInMailbox(long mailboxId)
+    public abstract long countMessagesInMailbox()
             throws StorageException;
 
-    public abstract long countUnseenMessagesInMailbox(long mailboxId)
+    public abstract long countUnseenMessagesInMailbox()
             throws StorageException;
 
     @SuppressWarnings("unchecked")
-    public abstract List<MailboxMembership> searchMailbox(long mailboxId,
-            SearchQuery query) throws StorageException;
+    public abstract List<MailboxMembership> searchMailbox(SearchQuery query) 
throws StorageException;
 
     public abstract void delete(MailboxMembership message) throws 
StorageException;
 
     @SuppressWarnings("unchecked")
-    public abstract List<MailboxMembership> 
findUnseenMessagesInMailboxOrderByUid(
-            final long mailboxId) throws StorageException;
+    public abstract List<MailboxMembership> 
findUnseenMessagesInMailboxOrderByUid() throws StorageException;
 
     @SuppressWarnings("unchecked")
-    public abstract List<MailboxMembership> findRecentMessagesInMailbox(
-            final long mailboxId) throws StorageException;
+    public abstract List<MailboxMembership> findRecentMessagesInMailbox() 
throws StorageException;
 
     public abstract void save(MailboxMembership message) throws 
StorageException;
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to