View Javadoc
1   package org.apache.maven.plugin.checkstyle.exec;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *   http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  
22  import com.puppycrawl.tools.checkstyle.api.AuditEvent;
23  import com.puppycrawl.tools.checkstyle.api.Configuration;
24  import com.puppycrawl.tools.checkstyle.api.SeverityLevel;
25  
26  import java.util.HashMap;
27  import java.util.LinkedList;
28  import java.util.List;
29  import java.util.Map;
30  
31  /**
32   * Object holding the references to the CheckstyleResults.
33   *
34   * @author <a href="mailto:joakim@erdfelt.net">Joakim Erdfelt</a>
35   * @version $Id: CheckstyleResults.html 959038 2015-07-20 17:14:24Z dennisl $
36   * @todo provide fallback to disk based storage if too many results.
37   */
38  public class CheckstyleResults
39  {
40      private Map<String, List<AuditEvent>> files;
41  
42      private Configuration configuration;
43  
44      public CheckstyleResults()
45      {
46          files = new HashMap<>();
47      }
48  
49      public List<AuditEvent> getFileViolations( String file )
50      {
51          List<AuditEvent> violations;
52  
53          if ( this.files.containsKey( file ) )
54          {
55              violations = this.files.get( file );
56          }
57          else
58          {
59              violations = new LinkedList<>();
60              if ( file != null )
61              {
62                  this.files.put( file, violations );
63              }
64          }
65  
66          return violations;
67      }
68  
69      public void setFileViolations( String file, List<AuditEvent> violations )
70      {
71          if ( file != null )
72          {
73              this.files.put( file, violations );
74          }
75      }
76  
77      public Map<String, List<AuditEvent>> getFiles()
78      {
79          return files;
80      }
81  
82      public void setFiles( Map<String, List<AuditEvent>> files )
83      {
84          this.files = files;
85      }
86  
87      public int getFileCount()
88      {
89          return this.files.size();
90      }
91  
92      public long getSeverityCount( SeverityLevel level )
93      {
94          long count = 0;
95  
96          for ( List<AuditEvent> errors : this.files.values() )
97          {
98              count = count + getSeverityCount( errors, level );
99          }
100 
101         return count;
102     }
103 
104     public long getSeverityCount( String file, SeverityLevel level )
105     {
106         long count = 0;
107 
108         if ( !this.files.containsKey( file ) )
109         {
110             return count;
111         }
112 
113         List<AuditEvent> violations = this.files.get( file );
114 
115         count = getSeverityCount( violations, level );
116 
117         return count;
118     }
119 
120     public long getSeverityCount( List<AuditEvent> violations, SeverityLevel level )
121     {
122         long count = 0;
123 
124         for ( AuditEvent event : violations )
125         {
126             if ( event.getSeverityLevel().equals( level ) )
127             {
128                 count++;
129             }
130         }
131 
132         return count;
133     }
134 
135     public Configuration getConfiguration()
136     {
137         return configuration;
138     }
139 
140     public void setConfiguration( Configuration configuration )
141     {
142         this.configuration = configuration;
143     }
144 }