You are viewing a plain text version of this content. The canonical link for it is here.
Posted to alexandria-dev@jakarta.apache.org by sa...@apache.org on 2002/02/03 03:20:13 UTC
cvs commit: jakarta-alexandria/proposal/vindico/src/java/org/apache/alexandria/util XMLHelper.java
sanders 02/02/02 18:20:13
Modified: proposal/vindico/src/java/org/apache/alexandria/util
XMLHelper.java
Log:
Updated to allow any Writer to use it. This is for file I/O
Revision Changes Path
1.4 +32 -23 jakarta-alexandria/proposal/vindico/src/java/org/apache/alexandria/util/XMLHelper.java
Index: XMLHelper.java
===================================================================
RCS file: /home/cvs/jakarta-alexandria/proposal/vindico/src/java/org/apache/alexandria/util/XMLHelper.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- XMLHelper.java 30 Jan 2002 18:58:12 -0000 1.3
+++ XMLHelper.java 3 Feb 2002 02:20:13 -0000 1.4
@@ -1,7 +1,7 @@
/*
- * $Header: /home/cvs/jakarta-alexandria/proposal/vindico/src/java/org/apache/alexandria/util/XMLHelper.java,v 1.3 2002/01/30 18:58:12 sanders Exp $
- * $Revision: 1.3 $
- * $Date: 2002/01/30 18:58:12 $
+ * $Header: /home/cvs/jakarta-alexandria/proposal/vindico/src/java/org/apache/alexandria/util/XMLHelper.java,v 1.4 2002/02/03 02:20:13 sanders Exp $
+ * $Revision: 1.4 $
+ * $Date: 2002/02/03 02:20:13 $
*
* ====================================================================
*
@@ -63,15 +63,18 @@
import java.util.ArrayList;
import java.util.Iterator;
+import java.io.Writer;
+import java.io.StringWriter;
import org.apache.commons.collections.ArrayStack;
/**
- * Represents ...
+ * Represents an XML stream. Simple stack based implementation that can handle
+ * indentation, elements, attributes, comments, and text in UTF-8.
*
* @author Scott Sanders
- * @version $Revision: 1.3 $ $Date: 2002/01/30 18:58:12 $
+ * @version $Revision: 1.4 $ $Date: 2002/02/03 02:20:13 $
*/
public class XMLHelper {
@@ -88,11 +91,17 @@
private static final String COMMENT_END = " -->";
public XMLHelper() {
+ buf = new StringWriter();
+ buf.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
+ }
+
+ public XMLHelper(Writer writer) {
+ buf = writer;
}
private ArrayStack elementStack = new ArrayStack();
private ArrayList attributes = new ArrayList();
- private StringBuffer buf = new StringBuffer("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
+ private Writer buf;// = new StringWriter();new StringBuffer("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
private boolean indent = false;
public void setIndent(boolean indent) {
@@ -114,9 +123,9 @@
public void popElement() {
String name = elementStack.pop().toString();
indent();
- buf.append(CLOSE);
- buf.append(name);
- buf.append(GT);
+ buf.write(CLOSE);
+ buf.write(name);
+ buf.write(GT);
newLine();
}
@@ -137,20 +146,20 @@
if (!isEmpty) {
elementStack.push(elementName);
}
- buf.append(LT);
- buf.append(elementName);
+ buf.write(LT);
+ buf.write(elementName);
appendAttributes();
if (isEmpty && value == null) {
- buf.append(EMPTY);
+ buf.write(EMPTY);
} else {
- buf.append(GT);
+ buf.write(GT);
if (value != null) {
- buf.append(value);
+ buf.write(value);
}
if (isEmpty) {
- buf.append(CLOSE);
- buf.append(elementName);
- buf.append(GT);
+ buf.write(CLOSE);
+ buf.write(elementName);
+ buf.write(GT);
}
}
if (value == null || isEmpty) {
@@ -160,9 +169,9 @@
public void comment(String comment) {
indent();
- buf.append(COMMENT_BEGIN);
- buf.append(comment);
- buf.append(COMMENT_END);
+ buf.write(COMMENT_BEGIN);
+ buf.write(comment);
+ buf.write(COMMENT_END);
newLine();
}
@@ -170,7 +179,7 @@
Iterator iter = attributes.iterator();
while (iter.hasNext()) {
String name = iter.next().toString();
- buf.append(name);
+ buf.write(name);
}
clearAttributes();
}
@@ -182,14 +191,14 @@
private void indent() {
if (indent) {
for (int i = 0; i < elementStack.size(); i++) {
- buf.append(INDENT);
+ buf.write(INDENT);
}
}
}
private void newLine() {
if (indent) {
- buf.append(NEWLINE);
+ buf.write(NEWLINE);
}
}
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>