XMLMessagePart.java
上传用户:huihesys
上传日期:2007-01-04
资源大小:3877k
文件大小:4k
源码类别:

WEB邮件程序

开发平台:

C/C++

  1. /* CVS ID: $Id: XMLMessagePart.java,v 1.1 2000/04/18 13:13:38 wastl Exp $ */
  2. package net.wastl.webmail.xml;
  3. import java.util.*;
  4. import org.w3c.dom.*;
  5. import org.apache.xerces.dom.*;
  6. /*
  7.  * XMLMessagePart.java
  8.  *
  9.  * Created: Tue Apr 18 14:08:56 2000
  10.  *
  11.  * Copyright (C) 2000 Sebastian Schaffert
  12.  * 
  13.  * This program is free software; you can redistribute it and/or
  14.  * modify it under the terms of the GNU General Public License
  15.  * as published by the Free Software Foundation; either version 2
  16.  * of the License, or (at your option) any later version.
  17.  * 
  18.  * This program is distributed in the hope that it will be useful,
  19.  * but WITHOUT ANY WARRANTY; without even the implied warranty of
  20.  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  21.  * GNU General Public License for more details.
  22.  * 
  23.  * You should have received a copy of the GNU General Public License
  24.  * along with this program; if not, write to the Free Software
  25.  * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
  26.  *
  27.  */
  28. /**
  29.  * A message part object for an XML message
  30.  */
  31. public class XMLMessagePart  {
  32.     
  33.     protected Document root;
  34.     protected Element part;
  35.     /**
  36.      * Create a new part for the given root document.
  37.      * Creates the necessary Element.
  38.      */
  39.     public XMLMessagePart(Document root) {
  40. this.part=root.createElement("PART");
  41. this.root=root;
  42.     }
  43.     /**
  44.      * Return a new part for a given part element
  45.      */
  46.     public XMLMessagePart(Element part) {
  47. this.part=part;
  48. this.root=part.getOwnerDocument();
  49.     }
  50.     public Element getPartElement() {
  51. return part;
  52.     }
  53.     public void setAttribute(String key, String value) {
  54. part.setAttribute(key,value);
  55.     }
  56.     public String getAttribute(String key) {
  57. return part.getAttribute(key);
  58.     }
  59.     public void quoteContent() {
  60. NodeList nl=part.getChildNodes();
  61. StringBuffer text=new StringBuffer();
  62. for(int i=0;i<nl.getLength();i++) {
  63.     Element elem=(Element)nl.item(i);
  64.     if(elem.getNodeName().equals("CONTENT")) {
  65. String value=XMLCommon.getElementTextValue(elem);
  66. StringTokenizer tok=new StringTokenizer(value,"n");
  67. while(tok.hasMoreTokens()) {
  68.     text.append("> ").append(tok.nextToken()).append("n");
  69. }
  70.     }
  71. }
  72. removeAllContent();
  73. addContent(text.toString(),0);
  74.     }
  75.     public void addContent(String content, int quotelevel) {
  76. Element content_elem=root.createElement("CONTENT");
  77. content_elem.setAttribute("quotelevel",quotelevel+"");
  78. XMLCommon.setElementTextValue(content_elem,content,true);
  79. part.appendChild(content_elem);
  80.     }
  81.     public void insertContent(String content, int quotelevel) {
  82. Element content_elem=root.createElement("CONTENT");
  83. content_elem.setAttribute("quotelevel",quotelevel+"");
  84. XMLCommon.setElementTextValue(content_elem,content,true);
  85. Node first=part.getFirstChild();
  86. part.insertBefore(content_elem,first);
  87.     }
  88.     public void addJavaScript(String content) {
  89. Element javascript_elem=root.createElement("JAVASCRIPT");
  90. XMLCommon.setElementTextValue(javascript_elem,content,true);
  91. part.appendChild(javascript_elem);
  92.     }
  93.     public void removeAllContent() {
  94. XMLCommon.genericRemoveAll(part,"CONTENT");
  95.     }
  96.     public XMLMessagePart createPart(String type) {
  97. XMLMessagePart newpart=new XMLMessagePart(root);
  98. newpart.setAttribute("type",type);
  99. appendPart(newpart);
  100. return newpart;
  101.     }
  102.     public void insertPart(XMLMessagePart childpart) {
  103. Node first=part.getFirstChild();
  104. part.insertBefore(childpart.getPartElement(),first);
  105.     }
  106.     public void appendPart(XMLMessagePart childpart) {
  107. part.appendChild(childpart.getPartElement());
  108.     }
  109.     public Enumeration getParts() {
  110. // Sucking NodeList needs a Vector to store Elements that will be removed!
  111. Vector v=new Vector();
  112. NodeList parts=part.getChildNodes();
  113. for(int j=0;j<parts.getLength();j++) {
  114.     Element elem=(Element)parts.item(j);
  115.     if(elem.getTagName().equals("PART")) {
  116. v.addElement(new XMLMessagePart(elem));
  117.     }
  118. }
  119. return v.elements();
  120.     }
  121.     public void removePart(XMLMessagePart childpart) {
  122. part.removeChild(childpart.getPartElement());
  123.     }
  124.     public void removeAllParts() {
  125. XMLCommon.genericRemoveAll(part,"PART");
  126.     }
  127. } // XMLMessagePart