View Javadoc
1   /*
2    * SPDX-FileCopyrightText: Copyright (c) 2011-2025 Yegor Bugayenko
3    * SPDX-License-Identifier: MIT
4    */
5   package com.qulice.pmd;
6   
7   import java.io.Writer;
8   import java.util.List;
9   import net.sourceforge.pmd.Report;
10  import net.sourceforge.pmd.properties.AbstractPropertySource;
11  import net.sourceforge.pmd.renderers.Renderer;
12  import net.sourceforge.pmd.util.datasource.DataSource;
13  
14  /**
15   * Renderer implementation which keeps track of all pmd-generated report.
16   *
17   * @since 1.0
18   */
19  @SuppressWarnings("deprecation")
20  final class PmdRenderer extends AbstractPropertySource implements Renderer {
21      /**
22       * This variable is union of all observed reports.
23       */
24      private final Report accumulator = new Report();
25  
26      @Override
27      public String getName() {
28          return "qulice";
29      }
30  
31      @Override
32      public void setName(final String name) {
33          throw new UnsupportedOperationException("Unimplemented method 'setName'");
34      }
35  
36      @Override
37      public String getDescription() {
38          return "not implemented yet";
39      }
40  
41      @Override
42      public String defaultFileExtension() {
43          throw new UnsupportedOperationException("Unimplemented defaultFileExtension");
44      }
45  
46      @Override
47      public void setDescription(final String description) {
48          throw new UnsupportedOperationException("Unimplemented setDescription");
49      }
50  
51      @Override
52      public boolean isShowSuppressedViolations() {
53          throw new UnsupportedOperationException("Unimplemented isShowSuppressedViolations");
54      }
55  
56      @Override
57      public void setShowSuppressedViolations(final boolean show) {
58          throw new UnsupportedOperationException("Unimplemented setShowSuppressedViolations");
59      }
60  
61      @Override
62      public void setUseShortNames(final List<String> list) {
63          // ignore it
64      }
65  
66      @Override
67      public Writer getWriter() {
68          throw new UnsupportedOperationException("Unimplemented getWriter");
69      }
70  
71      @Override
72      public void setWriter(final Writer writer) {
73          throw new UnsupportedOperationException("Unimplemented setWriter");
74      }
75  
76      @Override
77      public void start() {
78          // ignore it
79      }
80  
81      @Override
82      public void startFileAnalysis(final DataSource source) {
83          // ignore it
84      }
85  
86      @Override
87      public void renderFileReport(final Report report) {
88          this.accumulator.merge(report);
89      }
90  
91      @Override
92      public void end() {
93          // ignore it
94      }
95  
96      @Override
97      public void flush() {
98          // ignore it
99      }
100 
101     @Override
102     public void setReportFile(final String report) {
103         // ignore it
104     }
105 
106     @Override
107     public String getPropertySourceType() {
108         throw new UnsupportedOperationException("Unimplemented method 'getPropertySourceType'");
109     }
110 
111     /**
112      * Merges all collected errors into the provided target.
113      * @param target A Report instance which is updated
114      */
115     void exportTo(final Report target) {
116         target.merge(this.accumulator);
117     }
118 }