public class JavaNCSSCheck extends AbstractCheck
The NCSS-metric tries to determine complexity of methods, classes and files by counting the non commenting lines. Roughly said this is (nearly) equivalent to counting the semicolons and opening curly braces.
Modifier and Type | Class and Description |
---|---|
private static class |
JavaNCSSCheck.Counter
Class representing a counter.
|
Modifier and Type | Field and Description |
---|---|
private static int |
CLASS_MAX_NCSS
Default constant for max file ncss.
|
private int |
classMaximum
Maximum ncss for a class.
|
private java.util.Deque<JavaNCSSCheck.Counter> |
counters
List containing the stacked counters.
|
private static int |
FILE_MAX_NCSS
Default constant for max file ncss.
|
private int |
fileMaximum
Maximum ncss for a complete source file.
|
private static int |
METHOD_MAX_NCSS
Default constant for max method ncss.
|
private int |
methodMaximum
Maximum ncss for a method.
|
static java.lang.String |
MSG_CLASS
A key is pointing to the warning message text in "messages.properties"
file.
|
static java.lang.String |
MSG_FILE
A key is pointing to the warning message text in "messages.properties"
file.
|
static java.lang.String |
MSG_METHOD
A key is pointing to the warning message text in "messages.properties"
file.
|
Constructor and Description |
---|
JavaNCSSCheck() |
Modifier and Type | Method and Description |
---|---|
void |
beginTree(DetailAST rootAST)
Called before the starting to process a tree.
|
void |
finishTree(DetailAST rootAST)
Called after finished processing a tree.
|
int[] |
getAcceptableTokens()
The configurable token set.
|
int[] |
getDefaultTokens()
Returns the default token a check is interested in.
|
int[] |
getRequiredTokens()
The tokens that this check must be registered for.
|
private static boolean |
isCountable(DetailAST ast)
Checks if a token is countable for the ncss metric.
|
private static boolean |
isExpressionCountable(DetailAST ast)
Checks if an expression is countable for the ncss metric.
|
private static boolean |
isVariableDefCountable(DetailAST ast)
Checks if a variable definition is countable.
|
void |
leaveToken(DetailAST ast)
Called after all the child nodes have been process.
|
void |
setClassMaximum(int classMaximum)
Sets the maximum ncss for a class.
|
void |
setFileMaximum(int fileMaximum)
Sets the maximum ncss for a file.
|
void |
setMethodMaximum(int methodMaximum)
Sets the maximum ncss for a method.
|
void |
visitToken(DetailAST ast)
Called to process a token.
|
destroy, getClassLoader, getFileContents, getLine, getLines, getTabWidth, getTokenNames, init, isCommentNodesRequired, log, log, setClassLoader, setFileContents, setMessages, setTabWidth, setTokens
getCustomMessages, getId, getMessageBundle, getSeverity, getSeverityLevel, log, setId, setSeverity
configure, contextualize, finishLocalSetup, getConfiguration, setupChild
public static final java.lang.String MSG_METHOD
public static final java.lang.String MSG_CLASS
public static final java.lang.String MSG_FILE
private static final int FILE_MAX_NCSS
private static final int CLASS_MAX_NCSS
private static final int METHOD_MAX_NCSS
private int fileMaximum
private int classMaximum
private int methodMaximum
private java.util.Deque<JavaNCSSCheck.Counter> counters
public int[] getDefaultTokens()
AbstractCheck
getDefaultTokens
in class AbstractCheck
TokenTypes
public int[] getRequiredTokens()
AbstractCheck
getRequiredTokens
in class AbstractCheck
TokenTypes
public int[] getAcceptableTokens()
AbstractCheck
getAcceptableTokens
in class AbstractCheck
TokenTypes
public void beginTree(DetailAST rootAST)
AbstractCheck
beginTree
in class AbstractCheck
rootAST
- the root of the treepublic void visitToken(DetailAST ast)
AbstractCheck
visitToken
in class AbstractCheck
ast
- the token to processpublic void leaveToken(DetailAST ast)
AbstractCheck
leaveToken
in class AbstractCheck
ast
- the token leavingpublic void finishTree(DetailAST rootAST)
AbstractCheck
finishTree
in class AbstractCheck
rootAST
- the root of the treepublic void setFileMaximum(int fileMaximum)
fileMaximum
- the maximum ncsspublic void setClassMaximum(int classMaximum)
classMaximum
- the maximum ncsspublic void setMethodMaximum(int methodMaximum)
methodMaximum
- the maximum ncssprivate static boolean isCountable(DetailAST ast)
ast
- the ASTprivate static boolean isVariableDefCountable(DetailAST ast)
ast
- the ASTprivate static boolean isExpressionCountable(DetailAST ast)
ast
- the AST