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>