1 package net.sourceforge.pmd.cpd;
2
3 import net.sourceforge.pmd.PMD;
4
5 import java.util.Iterator;
6
7 /***
8 * @author Philippe T'Seyen
9 */
10 public class XMLRenderer implements Renderer
11 {
12 public String render(Iterator matches)
13 {
14 StringBuffer buffer = new StringBuffer();
15 buffer.append("<?xml version=\"1.0\"?>");
16 buffer.append("<pmd-cpd>");
17 for (;matches.hasNext();)
18 {
19 Match match = (Match) matches.next();
20 buffer.append("<duplication");
21 buffer.append(" lines=\"");
22 buffer.append(match.getLineCount());
23 buffer.append("\"");
24 buffer.append(" tokens=\"");
25 buffer.append(match.getTokenCount());
26 buffer.append("\">");
27
28 for (Iterator iterator = match.iterator(); iterator.hasNext();)
29 {
30 Mark mark = (Mark) iterator.next();
31 buffer.append("<file");
32 buffer.append(" line=\"");
33 buffer.append(mark.getBeginLine());
34 buffer.append("\"");
35 buffer.append(" path=\"");
36 buffer.append(mark.getTokenSrcID());
37 buffer.append("\"/>");
38 }
39 String codeFragment = match.getSourceCodeSlice();
40 if (codeFragment != null)
41 {
42 buffer.append("<codefragment><![CDATA[" + PMD.EOL + codeFragment + PMD.EOL + "]]></codefragment>");
43 }
44 buffer.append("</duplication>");
45 }
46 buffer.append("</pmd-cpd>");
47 return buffer.toString();
48 }
49 }
This page was automatically generated by Maven