@Override public void beginTree(DetailAST rootAST) { currentImportControl = null; processCurrentFile = path.matcher(getFileContents().getFileName()).find(); fileName = getFileContents().getText().getFile().getName(); final int period = fileName.lastIndexOf('.'); if (period != -1) { fileName = fileName.substring(0, period); } }
@Override public void beginTree(DetailAST rootAST) { matcher = format.matcher(getFileContents().getText().getFullText()); matchCount = 0; errorCount = 0; findMatch(); }
/** * Creates a new {@code XpathQueryGenerator} instance. * * @param event {@code TreeWalkerAuditEvent} object * @param tabWidth distance between tab stop position */ public XpathQueryGenerator(TreeWalkerAuditEvent event, int tabWidth) { this(event.getRootAst(), event.getLine(), event.getColumn(), event.getTokenType(), event.getFileContents().getText(), tabWidth); }
/** Recursive method that finds the matches. */ private void findMatch() { final boolean foundMatch = matcher.find(); if (foundMatch) { final FileText text = getFileContents().getText(); final LineColumn start = text.lineColumn(matcher.start()); final int startLine = start.getLine(); final boolean ignore = isIgnore(startLine, text, start); if (!ignore) { matchCount++; if (illegalPattern || checkForDuplicates && matchCount - 1 > duplicateLimit) { errorCount++; logMessage(startLine); } } if (canContinueValidation(ignore)) { findMatch(); } } else if (!illegalPattern && matchCount == 0) { logMessage(0); } }
/** * Static helper method to parses a Java source file. * @param contents contains the contents of the file * @return the root of the AST * @throws CheckstyleException if the contents is not a valid Java source */ public static DetailAST parse(FileContents contents) throws CheckstyleException { final String fullText = contents.getText().getFullText().toString(); final Reader reader = new StringReader(fullText); final GeneratedJavaLexer lexer = new GeneratedJavaLexer(reader); lexer.setCommentListener(contents); lexer.setTokenObjectClass("antlr.CommonHiddenStreamToken"); final TokenStreamHiddenTokenFilter filter = new TokenStreamHiddenTokenFilter(lexer); filter.hide(TokenTypes.SINGLE_LINE_COMMENT); filter.hide(TokenTypes.BLOCK_COMMENT_BEGIN); final GeneratedJavaRecognizer parser = new GeneratedJavaRecognizer(filter); parser.setFilename(contents.getFileName()); parser.setASTNodeClass(DetailAST.class.getName()); try { parser.compilationUnit(); } catch (RecognitionException | TokenStreamException ex) { final String exceptionMsg = String.format(Locale.ROOT, "%s occurred while parsing file %s.", ex.getClass().getSimpleName(), contents.getFileName()); throw new CheckstyleException(exceptionMsg, ex); } return (DetailAST) parser.getAST(); }
@Test public void testTextFileName() { final FileContents fileContents = new FileContents("filename", "123", "456"); assertEquals("Invalid file name", "filename", fileContents.getText().getFile().getName()); }
@Override public void beginTree(DetailAST rootAST) { MatchSuppressor suppressor = null; if (ignoreComments) { suppressor = new CommentSuppressor(getFileContents()); } final DetectorOptions options = DetectorOptions.newBuilder() .reporter(this) .compileFlags(0) .suppressor(suppressor) .format(format) .message(message) .minimum(minimum) .maximum(maximum) .ignoreCase(ignoreCase) .build(); final SinglelineDetector detector = new SinglelineDetector(options); detector.processLines(getFileContents().getText()); }
@Override public void beginTree(DetailAST rootAST) { currentImportControl = null; processCurrentFile = path.matcher(getFileContents().getFileName()).find(); fileName = getFileContents().getText().getFile().getName(); final int period = fileName.lastIndexOf('.'); if (period != -1) { fileName = fileName.substring(0, period); } }
@Override public void beginTree(DetailAST rootAST) { matcher = format.matcher(getFileContents().getText().getFullText()); matchCount = 0; errorCount = 0; findMatch(); }
/** * Checks if there's one ternary operator per line. * @param questionAST The token to examine. * @return true if ternary is isolated on line. */ private boolean isIsolatedTernaryOnLine(DetailAST questionAST) { final int lineNo = questionAST.getLineNo() - 1; final String line = getFileContents().getText().get(lineNo); return isSingleTernaryLine(line, lineNo); }
/** * Creates a new {@code XpathQueryGenerator} instance. * * @param event {@code TreeWalkerAuditEvent} object * @param tabWidth distance between tab stop position */ public XpathQueryGenerator(TreeWalkerAuditEvent event, int tabWidth) { this(event.getRootAst(), event.getLine(), event.getColumn(), event.getTokenType(), event.getFileContents().getText(), tabWidth); }
/** * Static helper method to parses a Java source file. * @param contents contains the contents of the file * @return the root of the AST * @throws CheckstyleException if the contents is not a valid Java source */ public static DetailAST parse(FileContents contents) throws CheckstyleException { final String fullText = contents.getText().getFullText().toString(); final Reader reader = new StringReader(fullText); final GeneratedJavaLexer lexer = new GeneratedJavaLexer(reader); lexer.setCommentListener(contents); lexer.setTokenObjectClass("antlr.CommonHiddenStreamToken"); final TokenStreamHiddenTokenFilter filter = new TokenStreamHiddenTokenFilter(lexer); filter.hide(TokenTypes.SINGLE_LINE_COMMENT); filter.hide(TokenTypes.BLOCK_COMMENT_BEGIN); final GeneratedJavaRecognizer parser = new GeneratedJavaRecognizer(filter); parser.setFilename(contents.getFileName()); parser.setASTNodeClass(DetailAST.class.getName()); try { parser.compilationUnit(); } catch (RecognitionException | TokenStreamException ex) { final String exceptionMsg = String.format(Locale.ROOT, "%s occurred while parsing file %s.", ex.getClass().getSimpleName(), contents.getFileName()); throw new CheckstyleException(exceptionMsg, ex); } return (DetailAST) parser.getAST(); }
/** Recursive method that finds the matches. */ private void findMatch() { final boolean foundMatch = matcher.find(); if (foundMatch) { final FileText text = getFileContents().getText(); final LineColumn start = text.lineColumn(matcher.start()); final int startLine = start.getLine(); final boolean ignore = isIgnore(startLine, text, start); if (!ignore) { matchCount++; if (illegalPattern || checkForDuplicates && matchCount - 1 > duplicateLimit) { errorCount++; logMessage(startLine); } } if (canContinueValidation(ignore)) { findMatch(); } } else if (!illegalPattern && matchCount == 0) { logMessage(0); } }
@Override public void beginTree(DetailAST rootAST) { MatchSuppressor suppressor = null; if (ignoreComments) { suppressor = new CommentSuppressor(getFileContents()); } final DetectorOptions options = DetectorOptions.newBuilder() .reporter(this) .compileFlags(0) .suppressor(suppressor) .format(format) .message(message) .minimum(minimum) .maximum(maximum) .ignoreCase(ignoreCase) .build(); final SinglelineDetector detector = new SinglelineDetector(options); detector.processLines(getFileContents().getText()); }