Clover Coverage Report - Checkstyle
Coverage timestamp: Fri May 9 2008 10:48:13 EST
../../../../../../img/srcFileCovDistChart10.png 0% of files have more coverage
16   119   10   2.29
6   47   0.62   7
7     1.43  
1    
 
  ObjectBlockHandler       Line # 29 100% 1.0
10 16 10 10 0.62
 
  ( 10 of 31)
 
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.indentation;
20   
21    import com.puppycrawl.tools.checkstyle.api.DetailAST;
22    import com.puppycrawl.tools.checkstyle.api.TokenTypes;
23   
24    /**
25    * Handler for inner classes.
26    *
27    * @author jrichard
28    */
 
29    public class ObjectBlockHandler extends BlockParentHandler
30    {
31    /**
32    * Construct an instance of this handler with the given indentation check,
33    * abstract syntax tree, and parent handler.
34    *
35    * @param aIndentCheck the indentation check
36    * @param aAst the abstract syntax tree
37    * @param aParent the parent handler
38    */
 
39  96 toggle public ObjectBlockHandler(IndentationCheck aIndentCheck,
40    DetailAST aAst, ExpressionHandler aParent)
41    {
42  96 super(aIndentCheck, "object def", aAst, aParent);
43    }
44   
45    /**
46    * There is no top level expression for this handler.
47    *
48    * @return null
49    */
 
50  13 toggle protected DetailAST getToplevelAST()
51    {
52  13 return null;
53    }
54   
55    /**
56    * Get the left curly brace portion of the expression we are handling.
57    *
58    * @return the left curly brace expression
59    */
 
60  163 toggle protected DetailAST getLCurly()
61    {
62  163 return getMainAst().findFirstToken(TokenTypes.LCURLY);
63    }
64   
65    /**
66    * Get the right curly brace portion of the expression we are handling.
67    *
68    * @return the right curly brace expression
69    */
 
70  126 toggle protected DetailAST getRCurly()
71    {
72  126 return getMainAst().findFirstToken(TokenTypes.RCURLY);
73    }
74   
75    /**
76    * Get the child element representing the list of statements.
77    *
78    * @return the statement list child
79    */
 
80  13 toggle protected DetailAST getListChild()
81    {
82  13 return getMainAst();
83    }
84   
85    /**
86    * Compute the indentation amount for this handler.
87    *
88    * @return the expected indentation amount
89    */
 
90  66 toggle protected IndentLevel getLevelImpl()
91    {
92  66 final DetailAST parentAST = getMainAst().getParent();
93  66 IndentLevel indent = getParent().getLevel();
94  66 if (parentAST.getType() == TokenTypes.LITERAL_NEW) {
95  13 indent.addAcceptedIndent(super.getLevelImpl());
96    }
97  53 else if (parentAST.getType() == TokenTypes.ENUM_CONSTANT_DEF) {
98  2 indent = super.getLevelImpl();
99    }
100  66 return indent;
101    }
102   
103    /**
104    * Check the indentation of the expression we are handling.
105    */
 
106  96 toggle public void checkIndentation()
107    {
108    // if we have a class or interface as a parent, don't do anything,
109    // as this is checked by class def; so
110    // only do this if we have a new for a parent (anonymous inner
111    // class)
112  96 final DetailAST parentAST = getMainAst().getParent();
113  96 if (parentAST.getType() != TokenTypes.LITERAL_NEW) {
114  83 return;
115    }
116   
117  13 super.checkIndentation();
118    }
119    }