KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > com > sun > j2ee > blueprints > opc > mailer > Mail


1 /*
2 * Copyright 2005 Sun Microsystems, Inc. All rights reserved.
3 *
4 * Redistribution and use in source and binary forms, with or without
5 * modification, are permitted provided that the following conditions
6 * are met:
7 *
8 * - Redistributions of source code must retain the above copyright
9 * notice, this list of conditions and the following disclaimer.
10 *
11 * - Redistribution in binary form must reproduce the above copyright
12 * notice, this list of conditions and the following disclaimer in
13 * the documentation and/or other materials provided with the
14 * distribution.
15 *
16 * Neither the name of Sun Microsystems, Inc. or the names of
17 * contributors may be used to endorse or promote products derived
18 * from this software without specific prior written permission.
19 *
20 * This software is provided "AS IS," without a warranty of any
21 * kind. ALL EXPRESS OR IMPLIED CONDITIONS, REPRESENTATIONS AND
22 * WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF MERCHANTABILITY,
23 * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT, ARE HEREBY
24 * EXCLUDED. SUN AND ITS LICENSORS SHALL NOT BE LIABLE FOR ANY DAMAGES
25 * SUFFERED BY LICENSEE AS A RESULT OF USING, MODIFYING OR
26 * DISTRIBUTING THE SOFTWARE OR ITS DERIVATIVES. IN NO EVENT WILL SUN
27 * OR ITS LICENSORS BE LIABLE FOR ANY LOST REVENUE, PROFIT OR DATA, OR
28 * FOR DIRECT, INDIRECT, SPECIAL, CONSEQUENTIAL, INCIDENTAL OR
29 * PUNITIVE DAMAGES, HOWEVER CAUSED AND REGARDLESS OF THE THEORY OF
30 * LIABILITY, ARISING OUT OF THE USE OF OR INABILITY TO USE SOFTWARE,
31 * EVEN IF SUN HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
32 *
33 * You acknowledge that Software is not designed, licensed or intended
34 * for use in the design, construction, operation or maintenance of
35 * any nuclear facility.
36 */

37
38 package com.sun.j2ee.blueprints.opc.mailer;
39
40 import java.io.*;
41 import java.util.*;
42 import java.net.*;
43 import javax.xml.parsers.*;
44 import org.w3c.dom.*;
45 import org.xml.sax.*;
46 import javax.xml.transform.*;
47 import javax.xml.transform.dom.*;
48 import javax.xml.transform.stream.*;
49
50 public class Mail {
51
52     private String JavaDoc address;
53     private String JavaDoc subject;
54     private String JavaDoc content;
55
56     private Mail() {}
57
58     public Mail(String JavaDoc address, String JavaDoc subject, String JavaDoc content) {
59         this.address = address;
60         this.subject = subject;
61         this.content = content;
62     }
63
64     // getters
65

66     public String JavaDoc getAddress() {
67         return address;
68     }
69
70     public String JavaDoc getSubject() {
71         return subject;
72     }
73     public String JavaDoc getContent() {
74         return content;
75     }
76
77     public String JavaDoc toXML() {
78       String JavaDoc mailXML = null;
79       try{
80                     
81           //construct the DOM tree
82
DocumentBuilderFactory docBuilderFactory = DocumentBuilderFactory.newInstance();
83           docBuilderFactory.setNamespaceAware(true);
84           DocumentBuilder docBuilder = docBuilderFactory.newDocumentBuilder();
85           Document doc = docBuilder.newDocument();
86           Element mailElem = doc.createElement("Mail");
87           doc.appendChild(mailElem);
88           Element elem = doc.createElement("Subject");
89           elem.appendChild(doc.createTextNode(subject));
90           mailElem.appendChild(elem);
91           elem = doc.createElement("Address");
92           elem.appendChild(doc.createTextNode(address));
93           mailElem.appendChild(elem);
94           elem = doc.createElement("Content");
95           elem.appendChild(doc.createTextNode(content));
96           mailElem.appendChild(elem);
97      
98           //process the source tree
99
ByteArrayOutputStream baStream = new ByteArrayOutputStream();
100           Result res = new StreamResult(baStream);
101           TransformerFactory transFactory = TransformerFactory.newInstance();
102           Transformer transformer = transFactory.newTransformer();
103           transformer.setOutputProperty(OutputKeys.METHOD, "xml");
104           transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
105     transformer.setOutputProperty(OutputKeys.INDENT, "yes");
106     transformer.transform(new DOMSource(doc), res);
107           mailXML = baStream.toString("UTF-8");
108           
109       } catch(Exception JavaDoc exe){
110           System.err.println(exe);
111       }
112       return mailXML;
113   }
114 }
115
Popular Tags