| /****************************************************************
|
| * 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.Folder;
|
| 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;
|
| <<<<<<< HEAD |
| <<<<<<< HEAD |
| <<<<<<< HEAD |
| import org.apache.hupa.shared.data.User;
|
| <<<<<<< HEAD |
| <<<<<<< HEAD |
| import org.apache.hupa.shared.proxy.IMAPFolderProxy;
|
| ======= |
| import org.apache.hupa.shared.data.IMAPFolder;
|
| import org.apache.hupa.shared.data.User;
|
| >>>>>>> first commit |
| ======= |
| import org.apache.hupa.shared.data.User;
|
| import org.apache.hupa.shared.proxy.IMAPFolderProxy;
|
| >>>>>>> Aim to make the front end view work after the server side's IMAPFolder services RF being working, but there are issues on RF's find* method, I think. |
| ======= |
| import org.apache.hupa.shared.proxy.ImapFolder;
|
| >>>>>>> Make the ValueProxy(ImapFolder) work with Manolo's patch. Hupa can display folders in west view with RequestFactory now. |
| ======= |
| import org.apache.hupa.shared.domain.ImapFolder;
|
| >>>>>>> Allow client can use the domain entity interface. |
| ======= |
| import org.apache.hupa.shared.domain.ImapFolder;
|
| import org.apache.hupa.shared.domain.User;
|
| >>>>>>> Make chechsession and login work with RF, with refactoring fetch folders. |
| import org.apache.hupa.shared.rpc.DeleteFolder;
|
| import org.apache.hupa.shared.rpc.GenericResult;
|
|
|
| import com.google.inject.Inject;
|
| import com.google.inject.Provider;
|
| import com.sun.mail.imap.IMAPStore;
|
|
|
| /**
|
| * Handle delete requests for a folder
|
| *
|
| *
|
| */
|
| public class DeleteFolderHandler extends AbstractSessionHandler<DeleteFolder, GenericResult>{
|
|
|
| @Inject
|
| public DeleteFolderHandler(IMAPStoreCache cache, Log logger,
|
| Provider<HttpSession> sessionProvider) {
|
| super(cache, logger, sessionProvider);
|
| }
|
|
|
| @Override
|
| protected GenericResult executeInternal(DeleteFolder action,
|
| ExecutionContext context) throws ActionException {
|
| User user = getUser();
|
| <<<<<<< HEAD |
| <<<<<<< HEAD |
| <<<<<<< HEAD |
| IMAPFolderProxy folder = action.getFolder();
|
| ======= |
| IMAPFolder folder = action.getFolder();
|
| >>>>>>> first commit |
| ======= |
| IMAPFolderProxy folder = action.getFolder();
|
| >>>>>>> Aim to make the front end view work after the server side's IMAPFolder services RF being working, but there are issues on RF's find* method, I think. |
| ======= |
| ImapFolder folder = action.getFolder();
|
| >>>>>>> Make the ValueProxy(ImapFolder) work with Manolo's patch. Hupa can display folders in west view with RequestFactory now. |
| try {
|
| IMAPStore store = cache.get(user);
|
|
|
| Folder f = store.getFolder(folder.getFullName());
|
|
|
| // close the folder if its open
|
| if (f.isOpen()) {
|
| f.close(false);
|
| }
|
|
|
| // recursive delete the folder
|
| if (f.delete(true)) {
|
| logger.info("Successfully delete folder " + folder + " for user " + user);
|
| return new GenericResult();
|
| } else {
|
| throw new ActionException("Unable to delete folder " + folder + " for user " + user);
|
| }
|
| } catch (Exception e) {
|
| logger.error("Error while deleting folder " + folder + " for user " + user,e);
|
| throw new ActionException("Error while deleting folder " + folder + " for user " + user,e);
|
| }
|
| }
|
|
|
| /*
|
| * (non-Javadoc)
|
| * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
|
| */
|
| public Class<DeleteFolder> getActionType() {
|
| return DeleteFolder.class;
|
| }
|
|
|
| }
|