1 /************************************************************************ 2 * Copyright (c) 2000-2006 The Apache Software Foundation. * 3 * All rights reserved. * 4 * ------------------------------------------------------------------- * 5 * Licensed under the Apache License, Version 2.0 (the "License"); you * 6 * may not use this file except in compliance with the License. You * 7 * may obtain a copy of the License at: * 8 * * 9 * http://www.apache.org/licenses/LICENSE-2.0 * 10 * * 11 * Unless required by applicable law or agreed to in writing, software * 12 * distributed under the License is distributed on an "AS IS" BASIS, * 13 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or * 14 * implied. See the License for the specific language governing * 15 * permissions and limitations under the License. * 16 ***********************************************************************/ 17 18 package org.apache.james.transport.mailets; 19 20 import javax.mail.MessagingException; 21 import java.util.StringTokenizer; 22 23 /*** 24 * This mailet will attach text to the end of the message (like a footer). Right 25 * now it only supports simple messages without multiple parts. 26 */ 27 public class AddFooter extends AbstractAddFooter { 28 29 /*** 30 * This is the plain text version of the footer we are going to add 31 */ 32 String text = ""; 33 34 /*** 35 * Initialize the mailet 36 */ 37 public void init() throws MessagingException { 38 text = getInitParameter("text"); 39 } 40 41 /*** 42 * This is exposed as a method for easy subclassing to provide alternate ways 43 * to get the footer text. 44 * 45 * @return the footer text 46 */ 47 public String getFooterText() { 48 return text; 49 } 50 51 /*** 52 * This is exposed as a method for easy subclassing to provide alternate ways 53 * to get the footer text. By default, this will take the footer text, 54 * converting the linefeeds to <br> tags. 55 * 56 * @return the HTML version of the footer text 57 */ 58 public String getFooterHTML() { 59 String text = getFooterText(); 60 StringBuffer sb = new StringBuffer(); 61 StringTokenizer st = new StringTokenizer(text, "\r\n", true); 62 while (st.hasMoreTokens()) { 63 String token = st.nextToken(); 64 if (token.equals("\r")) { 65 continue; 66 } 67 if (token.equals("\n")) { 68 sb.append("<br />\n"); 69 } else { 70 sb.append(token); 71 } 72 } 73 return sb.toString(); 74 } 75 76 /*** 77 * Return a string describing this mailet. 78 * 79 * @return a string describing this mailet 80 */ 81 public String getMailetInfo() { 82 return "AddFooter Mailet"; 83 } 84 }