bodewig     2005/03/15 06:21:50

  Modified:    proposal/sandbox/svn/src/main/org/apache/tools/ant/taskdefs/svn
                        SvnDiffHandler.java
  Log:
  Use DOM utility classes
  
  Revision  Changes    Path
  1.2       +26 -15    
ant/proposal/sandbox/svn/src/main/org/apache/tools/ant/taskdefs/svn/SvnDiffHandler.java
  
  Index: SvnDiffHandler.java
  ===================================================================
  RCS file: 
/home/cvs/ant/proposal/sandbox/svn/src/main/org/apache/tools/ant/taskdefs/svn/SvnDiffHandler.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- SvnDiffHandler.java       16 Feb 2005 14:08:41 -0000      1.1
  +++ SvnDiffHandler.java       15 Mar 2005 14:21:50 -0000      1.2
  @@ -30,6 +30,11 @@
   import org.apache.tools.ant.BuildException;
   import org.apache.tools.ant.Project;
   import org.apache.tools.ant.util.FileUtils;
  +import org.apache.tools.ant.util.DOMElementWriter;
  +import org.apache.tools.ant.util.DOMUtils;
  +
  +import org.w3c.dom.Document;
  +import org.w3c.dom.Element;
   
   /**
    * Parses the output of a svn diff command and/or writes an XML report
  @@ -58,6 +63,9 @@
        */
       private static final String DASHES = "--- ";
   
  +    /** stateless helper for writing the XML document */
  +    private static final DOMElementWriter DOM_WRITER = new 
DOMElementWriter();
  +
       /**
        * Parse the tmpFile and return and array of entries to be written
        * in the output.
  @@ -150,23 +158,24 @@
               PrintWriter writer = new PrintWriter(
                                        new OutputStreamWriter(output, 
"UTF-8"));
               writer.println("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
  -            writer.print("<" + rootElementName + " ");
  +            Document doc = DOMUtils.newDocument();
  +            Element root = doc.createElement(rootElementName);
               if (tag1Name != null && tag1Value != null) {
  -                writer.print(tag1Name + "=\"" + tag1Value + "\" ");
  +                root.setAttribute(tag1Name, tag1Value);
               }
               if (tag2Name != null && tag2Value != null) {
  -                writer.print(tag2Name + "=\"" + tag2Value + "\" ");
  +                root.setAttribute(tag2Name, tag2Value);
               }
   
               if (svnURL != null) {
  -                writer.print("svnurl=\"" + svnURL + "\" ");
  +                root.setAttribute("svnurl", svnURL);
               }
  -
  -            writer.println(">");
  +            DOM_WRITER.openElement(root, writer, 0, "\t");
  +            writer.println();
               for (int i = 0, c = entries.length; i < c; i++) {
  -                writeRevisionEntry(writer, entries[i]);
  +                writeRevisionEntry(doc, writer, entries[i]);
               }
  -            writer.println("</" + rootElementName + ">");
  +            DOM_WRITER.closeElement(root, writer, 0, "\t", true);
               writer.flush();
               writer.close();
           } catch (UnsupportedEncodingException uee) {
  @@ -181,16 +190,18 @@
       /**
        * Write a single entry to the given writer.
        *
  +     * @param doc Document used to create elements.
        * @param writer a <code>PrintWriter</code> value
        * @param entry a <code>SvnRevisionEntry</code> value
        */
  -    private static void writeRevisionEntry(PrintWriter writer,
  -                                           SvnEntry.Path entry) {
  -        writer.println("\t<path>");
  -        writer.println("\t\t<name><![CDATA[" + entry.getName() + 
"]]></name>");
  -        writer.println("\t\t<action>" + entry.getActionDescription() 
  -                       + "</action>");
  -        writer.println("\t</path>");
  +    private static void writeRevisionEntry(Document doc,
  +                                           PrintWriter writer,
  +                                           SvnEntry.Path entry)
  +        throws IOException {
  +        Element e = doc.createElement("path");
  +        DOMUtils.appendCDATAElement(e, "name", entry.getName());
  +        DOMUtils.appendTextElement(e, "action", 
entry.getActionDescription());
  +        DOM_WRITER.write(e, writer, 1, "\t");
       }
   
   }
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to