From 0fe31dfdf954242756eec703576cda4c8f561f1d Mon Sep 17 00:00:00 2001 From: Ilja Dubinin Date: Thu, 20 Aug 2015 00:35:43 +0100 Subject: [PATCH] Source files should not have any duplicated blocks. Issue #46 --- .../tools/checkstyle/TreeWalker.java | 56 ++++++++++--------- 1 file changed, 29 insertions(+), 27 deletions(-) diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/TreeWalker.java b/src/main/java/com/puppycrawl/tools/checkstyle/TreeWalker.java index 827e9c166..74410e83c 100755 --- a/src/main/java/com/puppycrawl/tools/checkstyle/TreeWalker.java +++ b/src/main/java/com/puppycrawl/tools/checkstyle/TreeWalker.java @@ -376,24 +376,12 @@ public final class TreeWalker * @param astState state of AST. */ private void notifyVisit(DetailAST ast, AstState astState) { - Collection visitors; - final String tokenType = Utils.getTokenName(ast.getType()); + final Collection visitors = getListOfChecks(ast, astState); - if (astState == AstState.WITH_COMMENTS) { - if (!tokenToCommentChecks.containsKey(tokenType)) { - return; + if (visitors != null) { + for (Check check : visitors) { + check.visitToken(ast); } - visitors = tokenToCommentChecks.get(tokenType); - } - else { - if (!tokenToOrdinaryChecks.containsKey(tokenType)) { - return; - } - visitors = tokenToOrdinaryChecks.get(tokenType); - } - - for (Check check : visitors) { - check.visitToken(ast); } } @@ -404,25 +392,39 @@ public final class TreeWalker * @param astState state of AST. */ private void notifyLeave(DetailAST ast, AstState astState) { - Collection visitors; + final Collection visitors = getListOfChecks(ast, astState); + + if (visitors != null) { + for (Check check : visitors) { + check.leaveToken(ast); + } + } + } + + /** + * Method returns list of checks + * + * @param ast + * the node to notify for + * @param astState + * state of AST. + * @return list of visitors + */ + private Collection getListOfChecks(DetailAST ast, AstState astState) { + Collection visitors = null; final String tokenType = Utils.getTokenName(ast.getType()); if (astState == AstState.WITH_COMMENTS) { - if (!tokenToCommentChecks.containsKey(tokenType)) { - return; + if (tokenToCommentChecks.containsKey(tokenType)) { + visitors = tokenToCommentChecks.get(tokenType); } - visitors = tokenToCommentChecks.get(tokenType); } else { - if (!tokenToOrdinaryChecks.containsKey(tokenType)) { - return; + if (tokenToOrdinaryChecks.containsKey(tokenType)) { + visitors = tokenToOrdinaryChecks.get(tokenType); } - visitors = tokenToOrdinaryChecks.get(tokenType); - } - - for (Check check : visitors) { - check.leaveToken(ast); } + return visitors; } /**