View Javadoc

1   package org.apache.maven.plugin.checkstyle;
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 816663 2012-05-08 14:00:13Z hboutemy $
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<String, List<AuditEvent>>();
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<AuditEvent>();
60              this.files.put( file, violations );
61          }
62  
63          return violations;
64      }
65  
66      public void setFileViolations( String file, List<AuditEvent> violations )
67      {
68          this.files.put( file, violations );
69      }
70  
71      public Map<String, List<AuditEvent>> getFiles()
72      {
73          return files;
74      }
75  
76      public void setFiles( Map<String, List<AuditEvent>> files )
77      {
78          this.files = files;
79      }
80  
81      public int getFileCount()
82      {
83          return this.files.size();
84      }
85  
86      public long getSeverityCount( SeverityLevel level )
87      {
88          long count = 0;
89  
90          for ( List<AuditEvent> errors : this.files.values() )
91          {
92              count = count + getSeverityCount( errors, level );
93          }
94  
95          return count;
96      }
97  
98      public long getSeverityCount( String file, SeverityLevel level )
99      {
100         long count = 0;
101 
102         if ( !this.files.containsKey( file ) )
103         {
104             return count;
105         }
106 
107         List<AuditEvent> violations = this.files.get( file );
108 
109         count = getSeverityCount( violations, level );
110 
111         return count;
112     }
113 
114     public long getSeverityCount( List<AuditEvent> violations, SeverityLevel level )
115     {
116         long count = 0;
117 
118         for ( AuditEvent event : violations )
119         {
120             if ( event.getSeverityLevel().equals( level ) )
121             {
122                 count++;
123             }
124         }
125 
126         return count;
127     }
128 
129     public Configuration getConfiguration()
130     {
131         return configuration;
132     }
133 
134     public void setConfiguration( Configuration configuration )
135     {
136         this.configuration = configuration;
137     }
138 }