1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.maven.plugins.pmd.exec;
20
21 import java.io.File;
22 import java.io.FileInputStream;
23 import java.io.InputStreamReader;
24 import java.io.Reader;
25 import java.util.ArrayList;
26 import java.util.List;
27
28 import org.apache.maven.plugins.pmd.model.CpdErrorDetail;
29 import org.apache.maven.plugins.pmd.model.Duplication;
30 import org.apache.maven.plugins.pmd.model.io.xpp3.CpdXpp3Reader;
31 import org.apache.maven.reporting.MavenReportException;
32
33
34
35
36 public class CpdResult {
37 private final List<Duplication> duplications = new ArrayList<>();
38
39 public CpdResult(File report, String encoding) throws MavenReportException {
40 loadResult(report, encoding);
41 }
42
43 public List<Duplication> getDuplications() {
44 return duplications;
45 }
46
47 public boolean hasDuplications() {
48 return !duplications.isEmpty();
49 }
50
51 private void loadResult(File report, String encoding) throws MavenReportException {
52 try (Reader reader1 = new InputStreamReader(new FileInputStream(report), encoding)) {
53 CpdXpp3Reader reader = new CpdXpp3Reader();
54 CpdErrorDetail details = reader.read(reader1, false);
55 duplications.addAll(details.getDuplications());
56 } catch (Exception e) {
57 throw new MavenReportException(e.getMessage(), e);
58 }
59 }
60 }