Author: norman
Date: Sun Sep 13 14:19:49 2009
New Revision: 814316

URL: http://svn.apache.org/viewvc?rev=814316&view=rev
Log:
Start to prepare for adding a delete all messages button (LABS-431)

Added:
    
labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractDeleteMessageHandler.java
    
labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteAllMessagesHandler.java
    
labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteMessageByUidHandler.java
      - copied, changed from r813527, 
labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteMessageHandler.java
    
labs/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/DeleteMessageByUidHandlerTest.java
      - copied, changed from r813527, 
labs/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/DeleteMessageHandlerTest.java
    
labs/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/DeleteAllMessages.java
    
labs/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessageByUid.java
Removed:
    
labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteMessageHandler.java
    
labs/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/DeleteMessageHandlerTest.java
Modified:
    
labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java
    
labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java
    
labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/guice/ServerModul.java
    
labs/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessage.java
    
labs/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessageResult.java

Modified: 
labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java?rev=814316&r1=814315&r2=814316&view=diff
==============================================================================
--- 
labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java
 (original)
+++ 
labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java
 Sun Sep 13 14:19:49 2009
@@ -38,7 +38,7 @@
 import org.apache.hupa.shared.events.MoveMessageEvent;
 import org.apache.hupa.shared.events.MoveMessageEventHandler;
 import org.apache.hupa.shared.events.NewMessageEvent;
-import org.apache.hupa.shared.rpc.DeleteMessage;
+import org.apache.hupa.shared.rpc.DeleteMessageByUid;
 import org.apache.hupa.shared.rpc.DeleteMessageResult;
 import org.apache.hupa.shared.rpc.MoveMessage;
 import org.apache.hupa.shared.rpc.MoveMessageResult;
@@ -178,7 +178,7 @@
                for (int i = 0; i < selectedMessages.size(); i++) {
                        uids.add(selectedMessages.get(i).getUid());
                }
-               dispatcher.execute(new 
DeleteMessage(user.getSessionId(),folder,uids), new 
SessionAsyncCallback<DeleteMessageResult>(new 
AsyncCallback<DeleteMessageResult>() {
+               dispatcher.execute(new 
DeleteMessageByUid(user.getSessionId(),folder,uids), new 
SessionAsyncCallback<DeleteMessageResult>(new 
AsyncCallback<DeleteMessageResult>() {
 
                        public void onFailure(Throwable caught) {
                                // TODO Auto-generated method stub
@@ -187,7 +187,7 @@
 
                        public void onSuccess(DeleteMessageResult result) {
                                display.removeMessages(selectedMessages);
-                               eventBus.fireEvent(new 
DecreaseUnseenEvent(user,folder,result.getMessageUids().size()));
+                               eventBus.fireEvent(new 
DecreaseUnseenEvent(user,folder,result.getCount()));
                        }
                }, eventBus,user));
        }

Modified: 
labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java?rev=814316&r1=814315&r2=814316&view=diff
==============================================================================
--- 
labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java
 (original)
+++ 
labs/hupa/trunk/client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java
 Sun Sep 13 14:19:49 2009
@@ -43,6 +43,7 @@
 import org.apache.hupa.shared.events.LoadMessagesEvent;
 import org.apache.hupa.shared.events.ReplyMessageEvent;
 import org.apache.hupa.shared.rpc.DeleteMessage;
+import org.apache.hupa.shared.rpc.DeleteMessageByUid;
 import org.apache.hupa.shared.rpc.DeleteMessageResult;
 import org.apache.hupa.shared.rpc.RawMessage;
 import org.apache.hupa.shared.rpc.RawMessageResult;
@@ -128,7 +129,7 @@
                        public void onClick(ClickEvent event) {
                                ArrayList<Long> uidList = new ArrayList<Long>();
                                uidList.add(message.getUid());
-                               dispatcher.execute(new 
DeleteMessage(user.getSessionId(),folder,uidList), new 
SessionAsyncCallback<DeleteMessageResult>(new 
AsyncCallback<DeleteMessageResult>() {
+                               dispatcher.execute(new 
DeleteMessageByUid(user.getSessionId(),folder,uidList), new 
SessionAsyncCallback<DeleteMessageResult>(new 
AsyncCallback<DeleteMessageResult>() {
 
                                        public void onFailure(Throwable caught) 
{
                                                // TODO Auto-generated method 
stub

Modified: 
labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/guice/ServerModul.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/guice/ServerModul.java?rev=814316&r1=814315&r2=814316&view=diff
==============================================================================
--- 
labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/guice/ServerModul.java
 (original)
+++ 
labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/guice/ServerModul.java
 Sun Sep 13 14:19:49 2009
@@ -32,8 +32,9 @@
 import org.apache.hupa.server.IMAPStoreCache;
 import org.apache.hupa.server.InMemoryIMAPStoreCache;
 import org.apache.hupa.server.handler.CreateFolderHandler;
+import org.apache.hupa.server.handler.DeleteAllMessagesHandler;
 import org.apache.hupa.server.handler.DeleteFolderHandler;
-import org.apache.hupa.server.handler.DeleteMessageHandler;
+import org.apache.hupa.server.handler.DeleteMessageByUidHandler;
 import org.apache.hupa.server.handler.FetchFoldersHandler;
 import org.apache.hupa.server.handler.FetchMessagesHandler;
 import org.apache.hupa.server.handler.FetchRecentMessagesHandler;
@@ -84,7 +85,8 @@
                bindHandler(FetchRecentMessagesHandler.class);
                bindHandler(LogoutUserHandler.class);
                bindHandler(GetMessageDetailsHandler.class);
-               bindHandler(DeleteMessageHandler.class);
+               bindHandler(DeleteMessageByUidHandler.class);
+               bindHandler(DeleteAllMessagesHandler.class);
                bindHandler(SendMessageHandler.class);
                bindHandler(ReplyMessageHandler.class);
                bindHandler(ForwardMessageHandler.class);

Added: 
labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractDeleteMessageHandler.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractDeleteMessageHandler.java?rev=814316&view=auto
==============================================================================
--- 
labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractDeleteMessageHandler.java
 (added)
+++ 
labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/AbstractDeleteMessageHandler.java
 Sun Sep 13 14:19:49 2009
@@ -0,0 +1,107 @@
+/****************************************************************
+ * 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.hupa.server.handler;
+
+import javax.mail.Flags;
+import javax.mail.Message;
+import javax.mail.MessagingException;
+import javax.servlet.http.HttpSession;
+
+import net.customware.gwt.dispatch.server.ExecutionContext;
+import net.customware.gwt.dispatch.shared.ActionException;
+
+import org.apache.commons.logging.Log;
+import org.apache.hupa.server.IMAPStoreCache;
+import org.apache.hupa.shared.data.User;
+import org.apache.hupa.shared.rpc.DeleteMessage;
+import org.apache.hupa.shared.rpc.DeleteMessageResult;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.sun.mail.imap.IMAPStore;
+
+public abstract class AbstractDeleteMessageHandler<Action extends 
DeleteMessage>
+               extends AbstractSessionHandler<Action, DeleteMessageResult> {
+
+       @Inject
+       public AbstractDeleteMessageHandler(IMAPStoreCache cache, Log logger,
+                       Provider<HttpSession> sessionProvider) {
+               super(cache, logger, sessionProvider);
+       }
+
+       public DeleteMessageResult executeInternal(Action action,
+                       ExecutionContext context) throws ActionException {
+               org.apache.hupa.shared.data.IMAPFolder folder = 
action.getFolder();
+               User user = getUser(action.getSessionId());
+               try {
+                       IMAPStore store = cache.get(user);
+                       com.sun.mail.imap.IMAPFolder f = 
(com.sun.mail.imap.IMAPFolder) store
+                                       .getFolder(folder.getFullName());
+                       // check if the folder is open, if not open it "rw"
+                       if (f.isOpen() == false) {
+                               f.open(com.sun.mail.imap.IMAPFolder.READ_WRITE);
+                       }
+
+                       Message[] mArray = getMessagesToDelete(action);
+                       
+                       // check if the delete was triggered not in the trash 
folder
+                       if (folder.getFullName().equalsIgnoreCase(
+                                       
user.getSettings().getTrashFolderName()) == false) {
+                               com.sun.mail.imap.IMAPFolder trashFolder = 
(com.sun.mail.imap.IMAPFolder) store
+                                               
.getFolder(user.getSettings().getTrashFolderName());
+
+                               boolean trashFound = false;
+                               // if the trash folder does not exist we create 
it
+                               if (trashFolder.exists() == false) {
+                                       trashFound = trashFolder
+                                                       
.create(com.sun.mail.imap.IMAPFolder.READ_WRITE);
+                               } else {
+                                       trashFound = true;
+                               }
+
+                               // Check if we are able to copy the messages to 
the trash folder
+                               if (trashFound) {
+                                       // copy the messages to the trashfolder
+                                       f.copyMessages(mArray, trashFolder);
+                               }
+                       }
+
+                       
+                       // delete the messages from the folder
+                       f.setFlags(mArray, new Flags(Flags.Flag.DELETED), true);
+                       
+                       try {
+                               f.expunge(mArray);
+                               f.close(false);
+                       } catch (MessagingException e) {
+                               // prolly UID expunge is not supported
+                               f.close(true);
+                       }
+                       return new DeleteMessageResult(user, folder, 
mArray.length);
+
+               } catch (MessagingException e) {
+                       logger.error("Error while deleting messages for user " 
+ user
+                                       + " in folder" + action.getFolder(), e);
+                       throw new ActionException("Error while deleting 
messages");
+               }
+       }
+
+       protected abstract Message[] getMessagesToDelete(Action action) throws 
ActionException;
+}

Added: 
labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteAllMessagesHandler.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteAllMessagesHandler.java?rev=814316&view=auto
==============================================================================
--- 
labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteAllMessagesHandler.java
 (added)
+++ 
labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteAllMessagesHandler.java
 Sun Sep 13 14:19:49 2009
@@ -0,0 +1,69 @@
+/****************************************************************
+ * 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.hupa.server.handler;
+
+import javax.mail.Message;
+import javax.mail.MessagingException;
+import javax.servlet.http.HttpSession;
+
+import net.customware.gwt.dispatch.shared.ActionException;
+
+import org.apache.commons.logging.Log;
+import org.apache.hupa.server.IMAPStoreCache;
+import org.apache.hupa.shared.data.User;
+import org.apache.hupa.shared.rpc.DeleteAllMessages;
+
+import com.google.inject.Inject;
+import com.google.inject.Provider;
+import com.sun.mail.imap.IMAPFolder;
+import com.sun.mail.imap.IMAPStore;
+
+public class DeleteAllMessagesHandler extends 
AbstractDeleteMessageHandler<DeleteAllMessages>{
+
+       @Inject
+       public DeleteAllMessagesHandler(IMAPStoreCache cache, Log logger,
+                       Provider<HttpSession> sessionProvider) {
+               super(cache, logger, sessionProvider);
+       }
+
+       @Override
+       protected Message[] getMessagesToDelete(DeleteAllMessages action)
+                       throws ActionException {
+               User user = getUser(action.getSessionId());
+               try {
+                       logger.info("Delete all messages in folder " + 
action.getFolder() + " for user " + user);
+                       IMAPStore store =cache.get(user);
+                       IMAPFolder folder = (IMAPFolder) 
store.getFolder(action.getFolder().getFullName());
+                       
+                       return folder.getMessages();
+               } catch (MessagingException e) {
+                       String errorMsg = "Error while deleting all messages in 
folder " + action.getFolder() + " for user " + user;
+                       logger.error(errorMsg, e);
+                       throw new ActionException(errorMsg);
+
+               }
+               
+       }
+
+       public Class<DeleteAllMessages> getActionType() {
+               return DeleteAllMessages.class;
+       }
+
+}

Copied: 
labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteMessageByUidHandler.java
 (from r813527, 
labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteMessageHandler.java)
URL: 
http://svn.apache.org/viewvc/labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteMessageByUidHandler.java?p2=labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteMessageByUidHandler.java&p1=labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteMessageHandler.java&r1=813527&r2=814316&rev=814316&view=diff
==============================================================================
--- 
labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteMessageHandler.java
 (original)
+++ 
labs/hupa/trunk/server/src/main/java/org/apache/hupa/server/handler/DeleteMessageByUidHandler.java
 Sun Sep 13 14:19:49 2009
@@ -22,20 +22,17 @@
 import java.util.ArrayList;
 import java.util.List;
 
-import javax.mail.Flags;
 import javax.mail.Message;
 import javax.mail.MessagingException;
 import javax.servlet.http.HttpSession;
 
-import net.customware.gwt.dispatch.server.ExecutionContext;
 import net.customware.gwt.dispatch.shared.ActionException;
 
 import org.apache.commons.logging.Log;
 import org.apache.hupa.server.IMAPStoreCache;
 import org.apache.hupa.shared.data.IMAPFolder;
 import org.apache.hupa.shared.data.User;
-import org.apache.hupa.shared.rpc.DeleteMessage;
-import org.apache.hupa.shared.rpc.DeleteMessageResult;
+import org.apache.hupa.shared.rpc.DeleteMessageByUid;
 
 import com.google.inject.Inject;
 import com.google.inject.Provider;
@@ -45,81 +42,55 @@
  * Handler which take care of deleting messages
  * 
  */
-public class DeleteMessageHandler extends 
AbstractSessionHandler<DeleteMessage, DeleteMessageResult>{
+public class DeleteMessageByUidHandler extends
+               AbstractDeleteMessageHandler<DeleteMessageByUid> {
 
        @Inject
-       public DeleteMessageHandler(IMAPStoreCache cache, Log 
logger,Provider<HttpSession> provider) {
-               super(cache,logger,provider);
+       public DeleteMessageByUidHandler(IMAPStoreCache cache, Log logger,
+                       Provider<HttpSession> provider) {
+               super(cache, logger, provider);
        }
 
-
        /*
         * (non-Javadoc)
-        * @see 
org.apache.hupa.server.handler.AbstractSessionHandler#executeInternal(org.apache.hupa.shared.rpc.Session,
 net.customware.gwt.dispatch.server.ExecutionContext)
+        * 
+        * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
         */
-       public DeleteMessageResult executeInternal(DeleteMessage action, 
ExecutionContext context)
+       public Class<DeleteMessageByUid> getActionType() {
+               return DeleteMessageByUid.class;
+       }
+
+       @Override
+       protected Message[] getMessagesToDelete(DeleteMessageByUid action)
                        throws ActionException {
                IMAPFolder folder = action.getFolder();
                ArrayList<Long> uids = action.getMessageUids();
                User user = getUser(action.getSessionId());
-               
-               logger.info("Deleting messages with uids "+ 
action.getMessageUids() + " for user " + user + " in folder" + 
action.getFolder());
 
+               logger.info("Deleting messages with uids " + 
action.getMessageUids()
+                               + " for user " + user + " in folder " + 
action.getFolder());
                try {
                        IMAPStore store = cache.get(user);
-                       com.sun.mail.imap.IMAPFolder f = 
(com.sun.mail.imap.IMAPFolder)store.getFolder(folder.getFullName());
+                       com.sun.mail.imap.IMAPFolder f = 
(com.sun.mail.imap.IMAPFolder) store
+                                       .getFolder(folder.getFullName());
                        // check if the folder is open, if not open it "rw"
                        if (f.isOpen() == false) {
                                f.open(com.sun.mail.imap.IMAPFolder.READ_WRITE);
                        }
-                       
                        // build up the list of messages to delete
                        List<Message> messages = new ArrayList<Message>();
-                       for (int i = 0; i < uids.size();i++) {
+                       for (int i = 0; i < uids.size(); i++) {
                                messages.add(f.getMessageByUID(uids.get(i)));
                        }
                        Message[] mArray = messages.toArray(new 
Message[messages.size()]);
-                       
-                       // check if the delete was triggered not in the trash 
folder
-                       if 
(folder.getFullName().equalsIgnoreCase(user.getSettings().getTrashFolderName()) 
== false) {
-                               com.sun.mail.imap.IMAPFolder trashFolder = 
(com.sun.mail.imap.IMAPFolder) 
store.getFolder(user.getSettings().getTrashFolderName());
-                               
-                               boolean trashFound = false;
-                               // if the trash folder does not exist we create 
it
-                               if (trashFolder.exists() == false) {
-                                       trashFound = 
trashFolder.create(com.sun.mail.imap.IMAPFolder.READ_WRITE);
-                               } else {
-                                       trashFound = true;
-                               }
-                               
-                               // Check if we are able to copy the messages to 
the trash folder
-                               if (trashFound) {
-                                       // copy the messages to the trashfolder
-                                       f.copyMessages(mArray,trashFolder);
-                               }
-                       } 
-                       // delete the messages from the folder
-                       f.setFlags(mArray, new Flags(Flags.Flag.DELETED), true);
-                       try {
-                               f.expunge(mArray);
-                               f.close(false);
-                       } catch (MessagingException e) {
-                               // prolly UID expunge is not supported
-                               f.close(true);
-                       }
-               } catch (Exception e) {
-                       logger.error("Error while deleting messages with uids 
"+ action.getMessageUids() + " for user " + user + " in folder" + 
action.getFolder(),e);
-                       throw new ActionException("Error while deleting 
messages",e);
+                       return mArray;
+               } catch (MessagingException e) {
+                       logger.error("Error while deleting messages with uids "
+                                       + action.getMessageUids() + " for user 
" + user
+                                       + " in folder" + action.getFolder(), e);
+                       throw new ActionException("Error while deleting 
messages", e);
                }
-               return new DeleteMessageResult(user,folder,uids);
-       }
 
-       /*
-        * (non-Javadoc)
-        * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
-        */
-       public Class<DeleteMessage> getActionType() {
-               return DeleteMessage.class;
        }
 
 }

Copied: 
labs/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/DeleteMessageByUidHandlerTest.java
 (from r813527, 
labs/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/DeleteMessageHandlerTest.java)
URL: 
http://svn.apache.org/viewvc/labs/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/DeleteMessageByUidHandlerTest.java?p2=labs/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/DeleteMessageByUidHandlerTest.java&p1=labs/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/DeleteMessageHandlerTest.java&r1=813527&r2=814316&rev=814316&view=diff
==============================================================================
--- 
labs/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/DeleteMessageHandlerTest.java
 (original)
+++ 
labs/hupa/trunk/server/src/test/java/org/apache/hupa/server/handler/DeleteMessageByUidHandlerTest.java
 Sun Sep 13 14:19:49 2009
@@ -35,21 +35,21 @@
 import org.apache.hupa.server.mock.MockLog;
 import org.apache.hupa.shared.data.IMAPFolder;
 import org.apache.hupa.shared.data.User;
-import org.apache.hupa.shared.rpc.DeleteMessage;
+import org.apache.hupa.shared.rpc.DeleteMessageByUid;
 import org.apache.hupa.shared.rpc.DeleteMessageResult;
 
-public class DeleteMessageHandlerTest extends AbstractHandlerTest{
+public class DeleteMessageByUidHandlerTest extends AbstractHandlerTest{
 
        
        public void testDeleteFolderNotExists() throws MessagingException {
-               DeleteMessageHandler handler = new 
DeleteMessageHandler(storeCache,new MockLog(),sessionProvider);
+               DeleteMessageByUidHandler handler = new 
DeleteMessageByUidHandler(storeCache,new MockLog(),sessionProvider);
        
                User user = createUser();
                storeCache.addValidUser(user.getName(), user.getPassword());
                session.setAttribute("user", user);
                IMAPFolder folder = new IMAPFolder();
                folder.setFullName("NOT_EXISTS");
-               DeleteMessage action = new DeleteMessage(VALID_ID,folder,new 
ArrayList<Long>());
+               DeleteMessageByUid action = new 
DeleteMessageByUid(VALID_ID,folder,new ArrayList<Long>());
 
                try {
                        handler.execute(action, null);
@@ -61,7 +61,7 @@
        
        public void testDeleteFolderExistsAndNotTrash() throws 
MessagingException {
                Session s = Session.getInstance(new Properties());
-               DeleteMessageHandler handler = new 
DeleteMessageHandler(storeCache,new MockLog(),sessionProvider);
+               DeleteMessageByUidHandler handler = new 
DeleteMessageByUidHandler(storeCache,new MockLog(),sessionProvider);
        
                User user = createUser();
                storeCache.addValidUser(user.getName(), user.getPassword());
@@ -77,17 +77,14 @@
                ArrayList<Long> uids = new ArrayList<Long>();
                uids.add(new Long(1));
                uids.add(new Long(3));
-               DeleteMessage action = new DeleteMessage(VALID_ID, folder, 
uids);
+               DeleteMessageByUid action = new DeleteMessageByUid(VALID_ID, 
folder, uids);
 
                MockIMAPFolder f3 = (MockIMAPFolder) 
store.getFolder(user.getSettings().getTrashFolderName());
                assertFalse("Trash folder not exists yet",f3.exists());
                
                try {
                        DeleteMessageResult result = handler.execute(action, 
null);
-                       ArrayList<Long> dUids = result.getMessageUids();
-                       assertEquals("Delete message with uid 1",new Long(1), 
dUids.get(0));
-                       assertEquals("Delete message with uid 2", new Long(3), 
dUids.get(1));
-
+                       int count = result.getCount();
                        assertEquals("Only 1 message left", 1, 
f.getMessageCount());
                        
                        MockIMAPFolder f2 = (MockIMAPFolder) 
store.getFolder(user.getSettings().getTrashFolderName());
@@ -101,7 +98,7 @@
        
        public void testDeleteFolderExistsAndIsTrash() throws 
MessagingException {
                Session s = Session.getInstance(new Properties());
-               DeleteMessageHandler handler = new 
DeleteMessageHandler(storeCache,new MockLog(),sessionProvider);
+               DeleteMessageByUidHandler handler = new 
DeleteMessageByUidHandler(storeCache,new MockLog(),sessionProvider);
        
                User user = createUser();
                storeCache.addValidUser(user.getName(), user.getPassword());
@@ -117,13 +114,11 @@
                ArrayList<Long> uids = new ArrayList<Long>();
                uids.add(new Long(1));
                uids.add(new Long(3));
-               DeleteMessage action = new DeleteMessage(VALID_ID, folder, 
uids);
+               DeleteMessageByUid action = new DeleteMessageByUid(VALID_ID, 
folder, uids);
 
                try {
                        DeleteMessageResult result = handler.execute(action, 
null);
-                       ArrayList<Long> dUids = result.getMessageUids();
-                       assertEquals("Delete message with uid 1",new Long(1), 
dUids.get(0));
-                       assertEquals("Delete message with uid 2", new Long(3), 
dUids.get(1));
+                       int count = result.getCount();
 
                        assertEquals("Only 1 message left", 1, 
f.getMessageCount());
                } catch (ActionException e) {

Added: 
labs/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/DeleteAllMessages.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/DeleteAllMessages.java?rev=814316&view=auto
==============================================================================
--- 
labs/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/DeleteAllMessages.java
 (added)
+++ 
labs/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/DeleteAllMessages.java
 Sun Sep 13 14:19:49 2009
@@ -0,0 +1,39 @@
+/****************************************************************
+ * 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.hupa.shared.rpc;
+
+import org.apache.hupa.shared.data.IMAPFolder;
+
+public class DeleteAllMessages extends DeleteMessage{
+
+       
+       /**
+        * 
+        */
+       private static final long serialVersionUID = -6801849429581798842L;
+
+       public DeleteAllMessages(String session, IMAPFolder folder) {
+               super(session, folder);
+       }
+       
+       protected DeleteAllMessages() {
+               
+       }
+} 

Modified: 
labs/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessage.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessage.java?rev=814316&r1=814315&r2=814316&view=diff
==============================================================================
--- 
labs/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessage.java
 (original)
+++ 
labs/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessage.java
 Sun Sep 13 14:19:49 2009
@@ -1,9 +1,3 @@
-package org.apache.hupa.shared.rpc;
-
-import java.util.ArrayList;
-
-import org.apache.hupa.shared.data.IMAPFolder;
-
 /****************************************************************
  * Licensed to the Apache Software Foundation (ASF) under one   *
  * or more contributor license agreements.  See the NOTICE file *
@@ -23,6 +17,10 @@
  * under the License.                                           *
  ****************************************************************/
 
+package org.apache.hupa.shared.rpc;
+
+import org.apache.hupa.shared.data.IMAPFolder;
+
 public class DeleteMessage extends Session<DeleteMessageResult>{
 
        /**
@@ -30,25 +28,18 @@
         */
        private static final long serialVersionUID = 801294103124082592L;
        private IMAPFolder folder;
-       private ArrayList<Long> messageUids;
 
-       public DeleteMessage(String sessionId,IMAPFolder folder, 
ArrayList<Long> messageUids) {
+       public DeleteMessage(String sessionId,IMAPFolder folder) {
                super(sessionId);
                this.folder = folder;
-               this.messageUids = messageUids;
        }
        
-       @SuppressWarnings("unused")
-       private DeleteMessage() {
+       protected DeleteMessage() {
                
        }
        
        public IMAPFolder getFolder() {
                return folder;
        }
-       
-       public ArrayList<Long> getMessageUids() {
-               return messageUids;
-       }
 
 }

Added: 
labs/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessageByUid.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessageByUid.java?rev=814316&view=auto
==============================================================================
--- 
labs/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessageByUid.java
 (added)
+++ 
labs/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessageByUid.java
 Sun Sep 13 14:19:49 2009
@@ -0,0 +1,49 @@
+/****************************************************************
+ * 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.hupa.shared.rpc;
+
+import java.util.ArrayList;
+
+import org.apache.hupa.shared.data.IMAPFolder;
+
+public class DeleteMessageByUid extends DeleteMessage{
+
+
+       /**
+        * 
+        */
+       private static final long serialVersionUID = -5980938676368660849L;
+       private ArrayList<Long> messageUids;
+
+
+       public DeleteMessageByUid(String sessionId,IMAPFolder folder, 
ArrayList<Long> messageUids) {
+               super(sessionId,folder);
+               this.messageUids = messageUids;
+       }
+       
+       protected DeleteMessageByUid() {
+               
+       }
+       
+       public ArrayList<Long> getMessageUids() {
+               return messageUids;
+       }
+
+}

Modified: 
labs/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessageResult.java
URL: 
http://svn.apache.org/viewvc/labs/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessageResult.java?rev=814316&r1=814315&r2=814316&view=diff
==============================================================================
--- 
labs/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessageResult.java
 (original)
+++ 
labs/hupa/trunk/shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessageResult.java
 Sun Sep 13 14:19:49 2009
@@ -19,8 +19,6 @@
 
 package org.apache.hupa.shared.rpc;
 
-import java.util.ArrayList;
-
 import net.customware.gwt.dispatch.shared.Result;
 
 import org.apache.hupa.shared.data.IMAPFolder;
@@ -34,7 +32,7 @@
        private static final long serialVersionUID = -5149203502019947912L;
        private User user;
        private IMAPFolder folder;
-       private ArrayList<Long> messageUids;
+       private int deleteCount;
 
 
        
@@ -43,10 +41,14 @@
                
        }
        
-       public DeleteMessageResult(User user,IMAPFolder folder, ArrayList<Long> 
messageUids) {
+       public DeleteMessageResult(User user,IMAPFolder folder, int 
deleteCount) {
                this.user = user;
                this.folder = folder;
-               this.messageUids = messageUids;
+               this.deleteCount = deleteCount;
+       }
+       
+       public int getCount() {
+               return deleteCount;
        }
        
        public User getUser() {
@@ -56,9 +58,5 @@
        public IMAPFolder getFolder() {
                return folder;
        }
-       
-       public ArrayList<Long> getMessageUids() {
-               return messageUids;
-       }
 
 }



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

Reply via email to