What is better inversion in method names of in usage ? What criteria we could use measure that ?
For private methods it might be not a problem, but mostly affects API and public methods
code:
For private methods it might be not a problem, but mostly affects API and public methods
@Override |
public void visitToken(DetailAST aAst) { |
DetailAST conditionExpressionAst = aAst.findFirstToken(TokenTypes.EXPR); |
switch (aAst.getType()) { |
case TokenTypes.LITERAL_RETURN: |
if (isNonEmptyReturn(aAst)) { |
DetailAST inversionAst = getInversion(conditionExpressionAst); |
if (isAvoidableInversion(inversionAst)) { |
log(inversionAst); |
} |
} |
break; |
case TokenTypes.LITERAL_WHILE: |
case TokenTypes.LITERAL_DO: |
case TokenTypes.LITERAL_IF: |
DetailAST inversionAst = getInversion(conditionExpressionAst); |
if (isAvoidableInversion(inversionAst)) { |
log(inversionAst); |
} |
break; |
case TokenTypes.FOR_CONDITION: |
if (isNonEmptyForCondition(aAst)) { |
inversionAst = getInversion(conditionExpressionAst); |
if (isAvoidableInversion(inversionAst)) { |
log(inversionAst); |
} |
} |
break; |
default: |
final String exceptionMsg = "Unexpected Token Type - " |
+ TokenTypes.getTokenName(aAst.getType()); |
throw new IllegalStateException(exceptionMsg); |
} |
} |
/** |
* Checks if return statement is not empty |
* @param aReturnAst |
*/ |
private static boolean isNonEmptyReturn(DetailAST aReturnAst) { |
return aReturnAst.findFirstToken(TokenTypes.EXPR) != null; |
} |
/** |
* Checks if condition in for-loop is not empty |
* @param aForConditionAst |
*/ |
private static boolean isNonEmptyForCondition(DetailAST aForConditionAst) { |
return aForConditionAst.getFirstChild() != null; |
} |
Some code could not be written without "NOT"/"NON" , Example:
https://github.com/checkstyle/checkstyle/blob/master/src/main/java/com/puppycrawl/tools/checkstyle/checks/whitespace/EmptyLineSeparatorCheck.java method "hasNotAllowedTwoEmptyLinesBefore" .
No comments:
Post a Comment