|
What this is
Other links
The source code
/* CVS ID: $Id: XMLMessagePart.java,v 1.1.1.1 2002/10/02 18:42:54 wastl Exp $ */
package net.wastl.webmail.xml;
import java.util.*;
import org.w3c.dom.*;
/*
* XMLMessagePart.java
*
* Created: Tue Apr 18 14:08:56 2000
*
* Copyright (C) 2000 Sebastian Schaffert
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
*/
/**
* A message part object for an XML message
*/
public class XMLMessagePart {
protected Document root;
protected Element part;
/**
* Create a new part for the given root document.
* Creates the necessary Element.
*/
public XMLMessagePart(Document root) {
this.part=root.createElement("PART");
this.root=root;
}
/**
* Return a new part for a given part element
*/
public XMLMessagePart(Element part) {
this.part=part;
this.root=part.getOwnerDocument();
}
public Element getPartElement() {
return part;
}
public void setAttribute(String key, String value) {
part.setAttribute(key,value);
}
public String getAttribute(String key) {
return part.getAttribute(key);
}
public void quoteContent() {
NodeList nl=part.getChildNodes();
StringBuffer text=new StringBuffer();
for(int i=0;i<nl.getLength();i++) {
Element elem=(Element)nl.item(i);
if(elem.getNodeName().equals("CONTENT")) {
String value=XMLCommon.getElementTextValue(elem);
StringTokenizer tok=new StringTokenizer(value,"\n");
while(tok.hasMoreTokens()) {
text.append("> ").append(tok.nextToken()).append("\n");
}
}
}
removeAllContent();
addContent(text.toString(),0);
}
/**
* This method is designed for content that already is in DOM format, like HTML
* messages.
*/
public void addContent(Document content) {
Element content_elem=root.createElement("CONTENT");
content_elem.setAttribute("quotelevel","0");
/* Find all <BODY> elements and add the child nodes to the content */
for(int count=0; count < 2; count++) {
NodeList nl=content.getDocumentElement().getElementsByTagName(count==0?"BODY":"body");
System.err.println("While parsing HTML content: Found "+nl.getLength()+" body elements");
for(int i=0; i<nl.getLength();i++) {
NodeList nl2=nl.item(i).getChildNodes();
System.err.println("While parsing HTML content: Found "+nl2.getLength()+" child elements");
for(int j=0;j<nl2.getLength();j++) {
System.err.println("Element: "+j);
content_elem.appendChild(XMLCommon.importNode(root,nl2.item(j),true));
}
}
}
part.appendChild(content_elem);
//XMLCommon.debugXML(root);
}
public void addContent(String content, int quotelevel) {
Element content_elem=root.createElement("CONTENT");
content_elem.setAttribute("quotelevel",quotelevel+"");
XMLCommon.setElementTextValue(content_elem,content,true);
part.appendChild(content_elem);
}
public void insertContent(String content, int quotelevel) {
Element content_elem=root.createElement("CONTENT");
content_elem.setAttribute("quotelevel",quotelevel+"");
XMLCommon.setElementTextValue(content_elem,content,true);
Node first=part.getFirstChild();
part.insertBefore(content_elem,first);
}
public void addJavaScript(String content) {
Element javascript_elem=root.createElement("JAVASCRIPT");
XMLCommon.setElementTextValue(javascript_elem,content,true);
part.appendChild(javascript_elem);
}
public void removeAllContent() {
XMLCommon.genericRemoveAll(part,"CONTENT");
}
public XMLMessagePart createPart(String type) {
XMLMessagePart newpart=new XMLMessagePart(root);
newpart.setAttribute("type",type);
appendPart(newpart);
return newpart;
}
public void insertPart(XMLMessagePart childpart) {
Node first=part.getFirstChild();
part.insertBefore(childpart.getPartElement(),first);
}
public void appendPart(XMLMessagePart childpart) {
part.appendChild(childpart.getPartElement());
}
public Enumeration getParts() {
// Sucking NodeList needs a Vector to store Elements that will be removed!
Vector v=new Vector();
NodeList parts=part.getChildNodes();
for(int j=0;j<parts.getLength();j++) {
Element elem=(Element)parts.item(j);
if(elem.getTagName().equals("PART")) {
v.addElement(new XMLMessagePart(elem));
}
}
return v.elements();
}
public void removePart(XMLMessagePart childpart) {
part.removeChild(childpart.getPartElement());
}
public void removeAllParts() {
XMLCommon.genericRemoveAll(part,"PART");
}
} // XMLMessagePart
|
| ... this post is sponsored by my books ... | |
#1 New Release! |
FP Best Seller |
Copyright 1998-2024 Alvin Alexander, alvinalexander.com
All Rights Reserved.
A percentage of advertising revenue from
pages under the /java/jwarehouse
URI on this website is
paid back to open source projects.