Clover Coverage Report - Checkstyle
Coverage timestamp: Fri May 9 2008 10:48:13 EST
../../../../../../img/srcFileCovDistChart8.png 75% of files have more coverage
10   82   10   3.33
8   40   1   3
3     3.33  
1    
 
  ThisParameterCheck       Line # 33 76.2% 0.7619048
11.35 10 10 10 1
 
  (3)
 
1    ////////////////////////////////////////////////////////////////////////////////
2    // checkstyle: Checks Java source code for adherence to a set of rules.
3    // Copyright (C) 2001-2005 Oliver Burn
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.checks.j2ee;
20   
21    import com.puppycrawl.tools.checkstyle.api.Check;
22    import com.puppycrawl.tools.checkstyle.api.DetailAST;
23    import com.puppycrawl.tools.checkstyle.api.TokenTypes;
24   
25    /**
26    * Checks that 'this' is not a parameter of any method calls
27    * or constructors for a bean.
28    * Instead, you must use the result of the getEJBObject()
29    * available in SessionContext or EntityContext.
30    * http://www.javaworld.com/javaworld/jw-08-2000/jw-0825-ejbrestrict.html
31    * @author Rick Giles
32    */
 
33    public class ThisParameterCheck
34    extends Check
35    {
36    /**
37    * {@inheritDoc}
38    */
 
39  3 toggle public int[] getDefaultTokens()
40    {
41  3 return new int[] {TokenTypes.LITERAL_THIS};
42    }
43   
44    /**
45    * {@inheritDoc}
46    */
 
47  0 toggle public int[] getRequiredTokens()
48    {
49  0 return getDefaultTokens();
50    }
51   
52    /**
53    * {@inheritDoc}
54    */
 
55  8 toggle public void visitToken(DetailAST aAST)
56    {
57  8 if (Utils.isInEJB(aAST)) {
58  8 DetailAST parent = aAST.getParent();
59   
60    // skip parentheses
61  8 while ((parent != null)
62    && (parent.getType() == TokenTypes.LPAREN))
63    {
64  0 parent = parent.getParent();
65    }
66   
67  8 if ((parent != null)
68    && (parent.getType() == TokenTypes.EXPR))
69    {
70  6 parent = parent.getParent();
71  6 if ((parent != null)
72    && (parent.getType() == TokenTypes.ELIST))
73    {
74  3 log(
75    aAST.getLineNo(),
76    aAST.getColumnNo(),
77    "thisparameter.bean");
78    }
79    }
80    }
81    }
82    }