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/05/02 08:21:15 UTC

svn commit: r770896 - in /james/imap/trunk: mailbox/src/main/java/org/apache/james/imap/mailbox/ processor/src/main/java/org/apache/james/imap/processor/base/ store/src/main/java/org/apache/james/imap/store/ torque/src/main/java/org/apache/james/mailbo...

Author: rdonkin
Date: Sat May  2 06:21:14 2009
New Revision: 770896

URL: http://svn.apache.org/viewvc?rev=770896&view=rev
Log:
Use an interface for user. This allows mailbox implementations to downcast to their particular implementation. IMAP-71 https://issues.apache.org/jira/browse/IMAP-71

Modified:
    james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxSession.java
    james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/ImapSessionUtils.java
    james/imap/trunk/store/src/main/java/org/apache/james/imap/store/SimpleMailboxSession.java
    james/imap/trunk/store/src/main/java/org/apache/james/imap/store/StoreMailboxManager.java
    james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
    james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxSession.java

Modified: james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxSession.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxSession.java?rev=770896&r1=770895&r2=770896&view=diff
==============================================================================
--- james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxSession.java (original)
+++ james/imap/trunk/mailbox/src/main/java/org/apache/james/imap/mailbox/MailboxSession.java Sat May  2 06:21:14 2009
@@ -52,8 +52,20 @@
     public Log getLog();
     
     /**
-     * Gets the name of the user executing this session.
+     * Gets the user executing this session.
      * @return not null
      */
-    public String getUserName();
+    public User getUser();
+    
+    /**
+     * A mailbox user.
+     * Useful for specialist mailbox implementation.
+     */
+    public interface User {
+        /**
+         * Gets the name of the user.
+         * @return not null
+         */
+        public String getUserName();
+    }
 }

Modified: james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/ImapSessionUtils.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/ImapSessionUtils.java?rev=770896&r1=770895&r2=770896&view=diff
==============================================================================
--- james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/ImapSessionUtils.java (original)
+++ james/imap/trunk/processor/src/main/java/org/apache/james/imap/processor/base/ImapSessionUtils.java Sat May  2 06:21:14 2009
@@ -40,7 +40,7 @@
         if (imapSession == null) {
             result = null;
         } else {
-            result = mailboxSession.getUserName();
+            result = mailboxSession.getUser().getUserName();
         }
         return result;
     }

Modified: james/imap/trunk/store/src/main/java/org/apache/james/imap/store/SimpleMailboxSession.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/store/src/main/java/org/apache/james/imap/store/SimpleMailboxSession.java?rev=770896&r1=770895&r2=770896&view=diff
==============================================================================
--- james/imap/trunk/store/src/main/java/org/apache/james/imap/store/SimpleMailboxSession.java (original)
+++ james/imap/trunk/store/src/main/java/org/apache/james/imap/store/SimpleMailboxSession.java Sat May  2 06:21:14 2009
@@ -25,7 +25,7 @@
 /**
  * Describes a mailbox session.
  */
-public class SimpleMailboxSession implements MailboxSession {
+public class SimpleMailboxSession implements MailboxSession, MailboxSession.User {
 
     private final long sessionId;
     
@@ -71,7 +71,15 @@
 
         return retValue;
     }
-
+    
+    /**
+     * Gets the user executing this session.
+     * @return not null
+     */
+    public User getUser() {
+        return this;
+    }
+    
     /**
      * Gets the name of the user executing this session.
      * @return not null

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=770896&r1=770895&r2=770896&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 Sat May  2 06:21:14 2009
@@ -307,16 +307,16 @@
 
     public void subscribe(MailboxSession session, String mailbox)
     throws SubscriptionException {
-        subscriber.subscribe(session.getUserName(), mailbox);
+        subscriber.subscribe(session.getUser().getUserName(), mailbox);
     }
 
     public Collection<String> subscriptions(MailboxSession session) throws SubscriptionException {
-        return subscriber.subscriptions(session.getUserName());
+        return subscriber.subscriptions(session.getUser().getUserName());
     }
 
     public void unsubscribe(MailboxSession session, String mailbox)
     throws SubscriptionException {
-        subscriber.unsubscribe(session.getUserName(), mailbox);
+        subscriber.unsubscribe(session.getUser().getUserName(), mailbox);
     }
 
     public void addListener(String mailboxName, MailboxListener listener) throws MailboxException {

Modified: james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java?rev=770896&r1=770895&r2=770896&view=diff
==============================================================================
--- james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java (original)
+++ james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxManager.java Sat May  2 06:21:14 2009
@@ -359,16 +359,16 @@
 
     public void subscribe(MailboxSession session, String mailbox)
             throws SubscriptionException {
-        userManager.subscribe(session.getUserName(), mailbox);
+        userManager.subscribe(session.getUser().getUserName(), mailbox);
     }
 
     public Collection<String> subscriptions(MailboxSession session) throws SubscriptionException {
-        return userManager.subscriptions(session.getUserName());
+        return userManager.subscriptions(session.getUser().getUserName());
     }
 
     public void unsubscribe(MailboxSession session, String mailbox)
             throws SubscriptionException {
-        userManager.unsubscribe(session.getUserName(), mailbox);
+        userManager.unsubscribe(session.getUser().getUserName(), mailbox);
     }
 
     public void addListener(String mailboxName, MailboxListener listener) throws MailboxException {

Modified: james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxSession.java
URL: http://svn.apache.org/viewvc/james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxSession.java?rev=770896&r1=770895&r2=770896&view=diff
==============================================================================
--- james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxSession.java (original)
+++ james/imap/trunk/torque/src/main/java/org/apache/james/mailboxmanager/torque/TorqueMailboxSession.java Sat May  2 06:21:14 2009
@@ -25,7 +25,7 @@
 /**
  * Describes a mailbox session.
  */
-public class TorqueMailboxSession implements MailboxSession {
+public class TorqueMailboxSession implements MailboxSession, MailboxSession.User {
 
     private final long sessionId;
     
@@ -76,6 +76,13 @@
         return retValue;
     }
 
+    /**
+     * Gets the user executing this session.
+     * @return not null
+     */
+    public User getUser() {
+        return this;
+    }
 
     /**
      * Gets the name of the user executing this session.



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