/** * Returns the directory name this file is in. * @return Directory name. */ private String getDirectoryName() { final String fileName = getFileContents().getFileName(); final int lastSeparatorPos = fileName.lastIndexOf(File.separatorChar); return fileName.substring(0, lastSeparatorPos); }
/** * Get source file name. * @return source file name. */ private String getFileName() { String name = getFileContents().getFileName(); name = name.substring(name.lastIndexOf(File.separatorChar) + 1); name = FILE_EXTENSION_PATTERN.matcher(name).replaceAll(""); return name; }
@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); } }
/** * 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(); }
/** * Process Package. * @param ast token * @param nextToken next token */ private void processPackage(DetailAST ast, DetailAST nextToken) { if (ast.getLineNo() > 1 && !hasEmptyLineBefore(ast)) { if (getFileContents().getFileName().endsWith("package-info.java")) { if (ast.getFirstChild().getChildCount() == 0 && !isPrecededByJavadoc(ast)) { log(ast.getLineNo(), MSG_SHOULD_BE_SEPARATED, ast.getText()); } } else { log(ast.getLineNo(), MSG_SHOULD_BE_SEPARATED, ast.getText()); } } if (!hasEmptyLineAfter(ast)) { log(nextToken.getLineNo(), MSG_SHOULD_BE_SEPARATED, nextToken.getText()); } }
/** * Returns the directory name this file is in. * @return Directory name. */ private String getDirectoryName() { final String fileName = getFileContents().getFileName(); final int lastSeparatorPos = fileName.lastIndexOf(File.separatorChar); return fileName.substring(0, lastSeparatorPos); }
/** * Get source file name. * @return source file name. */ private String getFileName() { String name = getFileContents().getFileName(); name = name.substring(name.lastIndexOf(File.separatorChar) + 1); name = FILE_EXTENSION_PATTERN.matcher(name).replaceAll(""); return name; }
@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 visitToken(final DetailAST ast) { if (this.exclude.matcher(this.getFileContents().getFileName()) .find()) { return; } if (TokenTypes.CLASS_DEF == ast.getParent().getParent().getType()) { this.checkClassMethod(ast); } }
@Override public void visitToken(final DetailAST ast) { if (this.exclude.matcher(this.getFileContents().getFileName()) .find()) { return; } if (TokenTypes.CLASS_DEF == ast.getParent().getParent().getType()) { this.checkClassMethod(ast); } }
@Override protected void visitLogMessage(final DetailAST ast, final String logMessage) { File file = new File(getFileContents().getFileName()); String fileName = FileNameUtil.getPathRelativeToMavenProjectRootIfPossible(file).getPath(); int lineNumber = ast.getLineNo(); LogMessageOccurence log = new LogMessageOccurence(fileName, lineNumber, logMessage); updateMessagesReportFile(log); }
return; if (!getFileContents().getFileName().matches(".*\\.java")) { return;
/** * 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(); }
/** * Process Package. * @param ast token * @param nextToken next token */ private void processPackage(DetailAST ast, DetailAST nextToken) { if (ast.getLineNo() > 1 && !hasEmptyLineBefore(ast)) { if (getFileContents().getFileName().endsWith("package-info.java")) { if (ast.getFirstChild().getChildCount() == 0 && !isPrecededByJavadoc(ast)) { log(ast.getLineNo(), MSG_SHOULD_BE_SEPARATED, ast.getText()); } } else { log(ast.getLineNo(), MSG_SHOULD_BE_SEPARATED, ast.getText()); } } if (!hasEmptyLineAfter(ast)) { log(nextToken.getLineNo(), MSG_SHOULD_BE_SEPARATED, nextToken.getText()); } }