01: ////////////////////////////////////////////////////////////////////////////////
02: // checkstyle: Checks Java source code for adherence to a set of rules.
03: // Copyright (C) 2001-2005 Oliver Burn
04: //
05: // This library is free software; you can redistribute it and/or
06: // modify it under the terms of the GNU Lesser General Public
07: // License as published by the Free Software Foundation; either
08: // version 2.1 of the License, or (at your option) any later version.
09: //
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.checks.usage;
20:
21: import com.puppycrawl.tools.checkstyle.api.DetailAST;
22: import com.puppycrawl.tools.checkstyle.api.Scope;
23: import com.puppycrawl.tools.checkstyle.api.ScopeUtils;
24: import com.puppycrawl.tools.checkstyle.api.TokenTypes;
25:
26: /**
27: * <p>Checks that a private field is used.
28: * </p>
29: * <p>
30: * An example of how to configure the check is:
31: * </p>
32: * <pre>
33: * <module name="usage.UnusedPrivateField"/>
34: * </pre>
35: *
36: * @author Rick Giles
37: */
38: public class UnusedPrivateFieldCheck extends AbstractUsageCheck {
39: /** @see com.puppycrawl.tools.checkstyle.api.Check */
40: public int[] getDefaultTokens() {
41: return new int[] { TokenTypes.VARIABLE_DEF, };
42: }
43:
44: /** @see com.puppycrawl.tools.checkstyle.checks.usage.AbstractUsageCheck */
45: public String getErrorKey() {
46: return "unused.field";
47: }
48:
49: /** @see com.puppycrawl.tools.checkstyle.checks.usage.AbstractUsageCheck */
50: public boolean mustCheckReferenceCount(DetailAST aAST) {
51: final DetailAST mods = aAST
52: .findFirstToken(TokenTypes.MODIFIERS);
53: return ((mods != null) && (ScopeUtils.getScopeFromMods(mods) == Scope.PRIVATE));
54: }
55: }
|