001: /**
002: * $Id: DeleteFolderTag.java,v 1.6 2005/09/21 10:52:22 dg154973 Exp $
003: * Copyright 2002 Sun Microsystems, Inc. All
004: * rights reserved. Use of this product is subject
005: * to license terms. Federal Acquisitions:
006: * Commercial Software -- Government Users
007: * Subject to Standard License Terms and
008: * Conditions.
009: *
010: * Sun, Sun Microsystems, the Sun logo, and iPlanet
011: * are trademarks or registered trademarks of Sun Microsystems,
012: * Inc. in the United States and other countries.
013: */package com.sun.portal.wireless.taglibs.mail;
014:
015: import javax.servlet.jsp.*;
016: import javax.servlet.jsp.tagext.*;
017:
018: import javax.mail.*;
019: import javax.mail.internet.*;
020: import javax.mail.search.*;
021:
022: import com.sun.portal.wireless.taglibs.base.*;
023: import com.sun.portal.log.common.PortalLogger;
024:
025: import java.util.logging.Logger;
026: import java.util.logging.Level;
027:
028: /**
029: *
030: * DeleteFolderTag - execute a delete folder on the Store
031: *
032: * @version 1.0
033: * @see com.sun.portal.wireless.taglibs.base.CommandTag
034: */
035: public class DeleteFolderTag extends CommandTag {
036:
037: private static Logger logger = PortalLogger
038: .getLogger(DeleteFolderTag.class);
039: private String foldername = null;
040:
041: public boolean execute() throws JspException {
042:
043: MailContext mc;
044: try {
045: mc = MailContext.getContext(pageContext);
046: } catch (Exception e) {
047: throw new JspException(this .getClass().getName()
048: + ".execute(): Couldn't get mail context: "
049: + e.getMessage());
050: }
051:
052: // Reset error code
053: mc.setErrorCode("");
054:
055: try {
056: Folder folder = mc.getMailStore().getFolder(foldername);
057:
058: if (folder.exists()) {
059: // folder has to be closed before delete
060: if (folder.isOpen()) {
061: folder.close(true);
062: }
063:
064: boolean b = folder.delete(true);
065:
066: if (b) {
067: release();
068: return true;
069: } else {
070: logger.log(Level.FINER, "PSMA_CSPWTM0002",
071: foldername);
072: }
073: } else {
074: logger.log(Level.FINE, "PSMA_CSPWTM0003", foldername);
075: mc.setErrorCode("MAIL_005");
076: }
077:
078: } catch (MessagingException e) {
079: logger.log(Level.FINE, "PSMA_CSPWTM0004", e);
080: mc.setErrorCode("MAIL_008");
081: }
082:
083: release();
084: return false;
085: }
086:
087: /**
088: * Cleanup
089: */
090:
091: public void release() {
092: super .release();
093: foldername = null;
094: }
095:
096: /**
097: *
098: * Set the folder name attribute
099: *
100: * @param set the folder name attribute
101: */
102:
103: public void setFoldername(String name) {
104: foldername = evalAttribute(name);
105: }
106:
107: }
|