KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > net > killingar > actions > email > Indent


1 /* Copyright 2000-2005 Anders Hovmöller
2  *
3  * The person or persons who have associated their work with
4  * this document (the "Dedicator") hereby dedicate the entire
5  * copyright in the work of authorship identified below (the
6  * "Work") to the public domain.
7  *
8  * Dedicator makes this dedication for the benefit of the
9  * public at large and to the detriment of Dedicator's heirs
10  * and successors. Dedicator intends this dedication to be an
11  * overt act of relinquishment in perpetuity of all present
12  * and future rights under copyright law, whether vested or
13  * contingent, in the Work. Dedicator understands that such
14  * relinquishment of all rights includes the relinquishment of
15  * all rights to enforce (by lawsuit or otherwise) those
16  * copyrights in the Work.
17  *
18  * Dedicator recognizes that, once placed in the public
19  * domain, the Work may be freely reproduced, distributed,
20  * transmitted, used, modified, built upon, or otherwise
21  * exploited by anyone for any purpose, commercial or non-
22  * commercial, and in any way, including by methods that have
23  * not yet been invented or conceived.
24  */

25
26 package net.killingar.actions.email;
27
28 import javax.mail.Folder JavaDoc;
29 import javax.mail.MessagingException JavaDoc;
30
31 public class Indent extends MailSupport
32 {
33     // Types ---------------------------------------------------------
34

35
36     // Attributes ----------------------------------------------------
37
String JavaDoc folder;
38     int messageNumber;
39     String JavaDoc to;
40
41     String JavaDoc body;
42     String JavaDoc subject;
43
44     // getters
45
public String JavaDoc getFolder() { return folder; }
46
47     public String JavaDoc getBody() { return body; }
48     public String JavaDoc getSubject() { return subject; }
49     public String JavaDoc getTo() { return to; }
50
51     // setters
52
public void setFolder(String JavaDoc in) { folder = in; }
53     public void setMessageNumber(int in) { messageNumber = in; }
54
55     // Implementation
56
public String JavaDoc doExecute()
57     {
58         try
59         {
60             // read stuff
61
Folder JavaDoc folder = mailStore.getDefaultFolder();
62             folder = folder.getFolder(this.folder);
63             try
64             {
65                 folder.open(Folder.READ_WRITE);
66             }
67             catch (MessagingException JavaDoc ex)
68             {
69                 folder.open(Folder.READ_ONLY);
70             }
71
72             javax.mail.Message JavaDoc msg = folder.getMessage(messageNumber);
73
74             Mail mail = new Mail(msg);
75
76             to = mail.getFrom();
77
78             subject = mail.getSubject().substring(3).equalsIgnoreCase("Re:")? mail.getSubject() : "Re: "+ mail.getSubject();
79
80             // indent body, we need to split it up into lines
81
String JavaDoc[] lines = mail.getBody().split("$");
82
83             StringBuffer JavaDoc result = new StringBuffer JavaDoc(mail.getBody().length()+lines.length*2); // try to guess size
84

85             for (int i = 0; i < lines.length; i++)
86             {
87                 result.append("> ");
88                 result.append(lines[i]);
89                 result.append("\n");
90             }
91
92             body = result.toString();
93
94             folder.close(false);
95         }
96         catch (Exception JavaDoc e)
97         {
98             addErrorMessage("viewing mailbox failed, exception thrown ("+e.toString()+")");
99             e.printStackTrace();
100
101             return ERROR;
102         }
103
104         return SUCCESS;
105     }
106 }
107
Popular Tags