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