View Javadoc

    1   /***
    2    * BSD-style license; for more info see http://pmd.sourceforge.net/license.html
    3    */
    4   package net.sourceforge.pmd.cpd;
    5
    6   import net.sourceforge.pmd.PMD;
    7
    8   import java.util.Iterator;
    9
    10
    11  public class CSVRenderer implements Renderer {
    12
    13  	private char separator;
    14
    15  	public static final char defaultSeparator = ',';
    16
    17  	public CSVRenderer() {
    18  		this(defaultSeparator);
    19  	}
    20
    21  	public CSVRenderer(char separatorChar) {
    22  		separator = separatorChar;
    23  	}
    24
    25      public String render(Iterator matches) {
    26          StringBuffer rpt = new StringBuffer(1000);
    27          rpt.append("lines").append(separator);
    28          rpt.append("tokens").append(separator);
    29          rpt.append("occurrences");
    30          rpt.append(PMD.EOL);
    31
    32          Match match;
    33          TokenEntry mark;
    34
    35          while (matches.hasNext()) {
    36              match = (Match) matches.next();
    37              rpt.append(match.getLineCount()).append(separator);
    38              rpt.append(match.getTokenCount()).append(separator);
    39              rpt.append(match.getMarkCount()).append(separator);
    40              for (Iterator marks = match.iterator(); marks.hasNext();) {
    41                  mark = (TokenEntry) marks.next();
    42                  rpt.append(mark.getBeginLine()).append(separator);
    43                  rpt.append(mark.getTokenSrcID());
    44                  if (marks.hasNext()) {
    45                      rpt.append(separator);
    46                  }
    47              }
    48              rpt.append(PMD.EOL);
    49          }
    50          return rpt.toString();
    51      }
    52  }