View Javadoc
1   ////////////////////////////////////////////////////////////////////////////////
2   // checkstyle: Checks Java source code for adherence to a set of rules.
3   // Copyright (C) 2001-2015 the original author or authors.
4   //
5   // This library is free software; you can redistribute it and/or
6   // modify it under the terms of the GNU Lesser General Public
7   // License as published by the Free Software Foundation; either
8   // version 2.1 of the License, or (at your option) any later version.
9   //
10  // This library is distributed in the hope that it will be useful,
11  // but WITHOUT ANY WARRANTY; without even the implied warranty of
12  // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13  // Lesser General Public License for more details.
14  //
15  // You should have received a copy of the GNU Lesser General Public
16  // License along with this library; if not, write to the Free Software
17  // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
18  ////////////////////////////////////////////////////////////////////////////////
19  package com.puppycrawl.tools.checkstyle.api;
20  
21  /**
22   * An audit listener that counts how many {@link AuditEvent AuditEvents}
23   * of a given severity have been generated.
24   *
25   * @author lkuehne
26   */
27  public final class SeverityLevelCounter implements AuditListener
28  {
29      /** The severity level to watch out for. */
30      private SeverityLevel level;
31  
32      /** Keeps track of the number of counted events. */
33      private int count;
34  
35      /**
36       * Creates a new counter.
37       * @param level the severity level events need to have, must be non-null.
38       */
39      public SeverityLevelCounter(SeverityLevel level)
40      {
41          if (level == null) {
42              throw new IllegalArgumentException();
43          }
44          this.level = level;
45      }
46  
47      /** {@inheritDoc} */
48      @Override
49      public void addError(AuditEvent evt)
50      {
51          if (level == evt.getSeverityLevel()) {
52              count++;
53          }
54      }
55  
56      /** {@inheritDoc} */
57      @Override
58      public void addException(AuditEvent evt, Throwable throwable)
59      {
60          if (SeverityLevel.ERROR == level) {
61              count++;
62          }
63      }
64  
65      /** {@inheritDoc} */
66      @Override
67      public void auditStarted(AuditEvent evt)
68      {
69          count = 0;
70      }
71  
72      /** {@inheritDoc} */
73      @Override
74      public void fileStarted(AuditEvent evt)
75      {
76      }
77  
78      /** {@inheritDoc} */
79      @Override
80      public void auditFinished(AuditEvent evt)
81      {
82      }
83  
84      /** {@inheritDoc} */
85      @Override
86      public void fileFinished(AuditEvent evt)
87      {
88      }
89  
90      /**
91       * Returns the number of counted events since audit started.
92       * @return the number of counted events since audit started.
93       */
94      public int getCount()
95      {
96          return count;
97      }
98  }