DescendantTokenCheck updated to follow Cyclomatic Complexity rule. #954

This commit is contained in:
Roman Ivanov 2015-06-13 17:40:04 -07:00
parent 6c11cedd3b
commit 40bb681263
1 changed files with 58 additions and 39 deletions

View File

@ -224,56 +224,75 @@ public class DescendantTokenCheck extends Check {
Arrays.fill(counts, 0);
countTokens(ast, 0);
if (sumTokenCounts) {
logAsTotal(ast);
}
else {
logAsSeparated(ast);
}
}
/**
* log violations for each Token
* @param ast token
*/
private void logAsSeparated(DetailAST ast) {
// name of this token
final String name = Utils.getTokenName(ast.getType());
if (sumTokenCounts) {
int total = 0;
for (int element : limitedTokens) {
total += counts[element - 1];
}
if (total < minimumNumber) {
for (int element : limitedTokens) {
final int tokenCount = counts[element - 1];
if (tokenCount < minimumNumber) {
final String descendantName = Utils
.getTokenName(element);
log(ast.getLineNo(), ast.getColumnNo(),
null == minimumMessage ? MSG_KEY_SUM_MIN
null == minimumMessage ? MSG_KEY_MIN
: minimumMessage,
String.valueOf(total),
String.valueOf(minimumNumber), name);
String.valueOf(tokenCount),
String.valueOf(minimumNumber),
name,
descendantName);
}
if (total > maximumNumber) {
if (tokenCount > maximumNumber) {
final String descendantName = Utils
.getTokenName(element);
log(ast.getLineNo(), ast.getColumnNo(),
null == maximumMessage ? MSG_KEY_SUM_MAX
null == maximumMessage ? MSG_KEY_MAX
: maximumMessage,
String.valueOf(total),
String.valueOf(tokenCount),
String.valueOf(maximumNumber),
name);
name,
descendantName);
}
}
else {
for (int element : limitedTokens) {
final int tokenCount = counts[element - 1];
if (tokenCount < minimumNumber) {
final String descendantName = Utils
.getTokenName(element);
log(ast.getLineNo(), ast.getColumnNo(),
null == minimumMessage ? MSG_KEY_MIN
: minimumMessage,
String.valueOf(tokenCount),
String.valueOf(minimumNumber),
name,
descendantName);
}
if (tokenCount > maximumNumber) {
final String descendantName = Utils
.getTokenName(element);
log(ast.getLineNo(), ast.getColumnNo(),
null == maximumMessage ? MSG_KEY_MAX
: maximumMessage,
String.valueOf(tokenCount),
String.valueOf(maximumNumber),
name,
descendantName);
}
}
}
/**
* log validation as one violation
* @param ast curent token
*/
private void logAsTotal(DetailAST ast) {
// name of this token
final String name = Utils.getTokenName(ast.getType());
int total = 0;
for (int element : limitedTokens) {
total += counts[element - 1];
}
if (total < minimumNumber) {
log(ast.getLineNo(), ast.getColumnNo(),
null == minimumMessage ? MSG_KEY_SUM_MIN
: minimumMessage,
String.valueOf(total),
String.valueOf(minimumNumber), name);
}
if (total > maximumNumber) {
log(ast.getLineNo(), ast.getColumnNo(),
null == maximumMessage ? MSG_KEY_SUM_MAX
: maximumMessage,
String.valueOf(total),
String.valueOf(maximumNumber),
name);
}
}