Author: eric
Date: Mon Dec 13 15:37:06 2010
New Revision: 1045177

URL: http://svn.apache.org/viewvc?rev=1045177&view=rev
Log:
Add a list method on MailboxManager to obtain all the existing mailboxpath 
(MAILBOX-19)

Modified:
    
james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
    
james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java
    
james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java
    
james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/JPAMailbox.java
    
james/mailbox/trunk/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
    
james/mailbox/trunk/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java

Modified: 
james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxManager.java?rev=1045177&r1=1045176&r2=1045177&view=diff
==============================================================================
--- 
james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
 (original)
+++ 
james/mailbox/trunk/api/src/main/java/org/apache/james/mailbox/MailboxManager.java
 Mon Dec 13 15:37:06 2010
@@ -208,5 +208,14 @@ public interface MailboxManager extends 
      * @throws MailboxException
      */
     void addListener(MailboxPath mailboxPath, MailboxListener listener, 
MailboxSession session) throws MailboxException;
-    
+ 
+    /**
+     * Return a unmodifiable {...@link List} of {...@link MailboxPath} objects
+     * 
+     * @param session
+     * @return pathList
+     * @throws MailboxException 
+     */
+    public List<MailboxPath> list(MailboxSession session) throws 
MailboxException;
+
 }

Modified: 
james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java?rev=1045177&r1=1045176&r2=1045177&view=diff
==============================================================================
--- 
james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java
 (original)
+++ 
james/mailbox/trunk/jcr/src/main/java/org/apache/james/mailbox/jcr/mail/JCRMailboxMapper.java
 Mon Dec 13 15:37:06 2010
@@ -213,5 +213,26 @@ public class JCRMailboxMapper extends Ab
             throw new MailboxException("Unable to retrieve children for 
mailbox " + mailbox, e);
         }
     }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.james.mailbox.store.mail.MailboxMapper#list()
+     */
+    public List<Mailbox<String>> list() throws MailboxException {
+        try {
+            List<Mailbox<String>> mList = new ArrayList<Mailbox<String>>();
+            QueryManager manager = 
getSession().getWorkspace().getQueryManager();
+
+            String queryString = "/jcr:root/" + MAILBOXES_PATH + 
"//element(*,jamesMailbox:mailbox)";
+            QueryResult result = manager.createQuery(queryString, 
Query.XPATH).execute();
+            NodeIterator it = result.getNodes();
+            if (it.hasNext()) {
+                mList.add(new JCRMailbox(it.nextNode(), getLogger()));
+            }
+            return mList;
+        } catch (RepositoryException e) {
+            throw new MailboxException("Unable to retrieve the list of 
mailboxes", e);
+        }
+    }
  
 }

Modified: 
james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java?rev=1045177&r1=1045176&r2=1045177&view=diff
==============================================================================
--- 
james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java
 (original)
+++ 
james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/JPAMailboxMapper.java
 Mon Dec 13 15:37:06 2010
@@ -152,4 +152,17 @@ public class JPAMailboxMapper extends JP
         }
         return numberOfChildMailboxes != null && numberOfChildMailboxes > 0;
     }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.james.mailbox.store.mail.MailboxMapper#list()
+     */
+    @SuppressWarnings("unchecked")
+    public List<Mailbox<Long>> list() throws MailboxException{
+        try {
+            return 
getEntityManager().createNamedQuery("listMailboxes").getResultList();
+        } catch (PersistenceException e) {
+            throw new MailboxException("Delete of mailboxes failed", e);
+        } 
+    }
 }

Modified: 
james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/JPAMailbox.java
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/JPAMailbox.java?rev=1045177&r1=1045176&r2=1045177&view=diff
==============================================================================
--- 
james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/JPAMailbox.java
 (original)
+++ 
james/mailbox/trunk/jpa/src/main/java/org/apache/james/mailbox/jpa/mail/model/JPAMailbox.java
 Mon Dec 13 15:37:06 2010
@@ -46,7 +46,9 @@ import org.apache.james.mailbox.store.ma
     @NamedQuery(name="countMailboxesWithNameLikeWithUser",
                 query="SELECT COUNT(mailbox) FROM Mailbox mailbox WHERE 
mailbox.name LIKE :nameParam and mailbox.user= :userParam and 
mailbox.namespace= :namespaceParam"),
     @NamedQuery(name="countMailboxesWithNameLike",
-                query="SELECT COUNT(mailbox) FROM Mailbox mailbox WHERE 
mailbox.name LIKE :nameParam and mailbox.user is NULL and mailbox.namespace= 
:namespaceParam")     
+                query="SELECT COUNT(mailbox) FROM Mailbox mailbox WHERE 
mailbox.name LIKE :nameParam and mailbox.user is NULL and mailbox.namespace= 
:namespaceParam"),
+    @NamedQuery(name="listMailboxes",
+                query="SELECT mailbox FROM Mailbox mailbox"),
 })
 public class JPAMailbox implements Mailbox<Long> {
     

Modified: 
james/mailbox/trunk/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java?rev=1045177&r1=1045176&r2=1045177&view=diff
==============================================================================
--- 
james/mailbox/trunk/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
 (original)
+++ 
james/mailbox/trunk/maildir/src/main/java/org/apache/james/mailbox/maildir/mail/MaildirMailboxMapper.java
 Mon Dec 13 15:37:06 2010
@@ -222,4 +222,9 @@ public class MaildirMailboxMapper extend
         }
     }
 
+    public List<Mailbox<Integer>> list() throws MailboxException {
+        // TODO FIX ME!!!
+        throw new UnsupportedOperationException("Implement me!");
+    }
+
 }

Modified: 
james/mailbox/trunk/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java
URL: 
http://svn.apache.org/viewvc/james/mailbox/trunk/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java?rev=1045177&r1=1045176&r2=1045177&view=diff
==============================================================================
--- 
james/mailbox/trunk/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java
 (original)
+++ 
james/mailbox/trunk/memory/src/main/java/org/apache/james/mailbox/inmemory/mail/InMemoryMailboxMapper.java
 Mon Dec 13 15:37:06 2010
@@ -118,5 +118,13 @@ public class InMemoryMailboxMapper exten
         }
         return false;
     }
+
+    /*
+     * (non-Javadoc)
+     * @see org.apache.james.mailbox.store.mail.MailboxMapper#list()
+     */
+    public List<Mailbox<Long>> list() throws MailboxException {
+        return new ArrayList<Mailbox<Long>>(mailboxesById.values());
+    }
     
 }



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

Reply via email to