/** * Checks whether {@link AuditEvent} is in the scope of the suppression. * @param event {@link AuditEvent} instance. * @return true if {@link AuditEvent} is in the scope of the suppression. */ private boolean isInScopeOfSuppression(AuditEvent event) { return lineNo <= event.getLine(); }
/** * Whether line and column match. * @param event event to process. * @return true if line and column match. */ private boolean isLineAndColumnMatch(AuditEvent event) { return (lineFilter != null || columnFilter != null) && (lineFilter == null || !lineFilter.accept(event.getLine())) && (columnFilter == null || !columnFilter.accept(event.getColumn())); }
.append(fileName).append(':').append(event.getLine()); if (event.getColumn() > 0) { sb.append(':').append(event.getColumn());
/** * Outputs the given event to the writer. * @param event An event to print. */ private void writeFileError(AuditEvent event) { writer.print("<error" + " line=\"" + event.getLine() + "\""); if (event.getColumn() > 0) { writer.print(" column=\"" + event.getColumn() + "\""); } writer.print(" severity=\"" + event.getSeverityLevel().getName() + "\""); writer.print(" message=\"" + encode(event.getMessage()) + "\""); writer.print(" source=\""); if (event.getModuleId() == null) { writer.print(encode(event.getSourceName())); } else { writer.print(encode(event.getModuleId())); } writer.println("\"/>"); }
@Override public String format(AuditEvent event) { final String fileName = event.getFileName(); final String message = event.getMessage(); // avoid StringBuffer.expandCapacity final int bufLen = event.getFileName().length() + event.getMessage().length() + LENGTH_OF_ALL_SEPARATORS; final StringBuilder sb = new StringBuilder(bufLen); sb.append(fileName).append(':').append(event.getLine()); if (event.getColumn() > 0) { sb.append(':').append(event.getColumn()); } sb.append(": ").append(message); return sb.toString(); }
@Test public void testFormatModuleNameDoesNotContainCheckSuffix() { final AuditEvent mock = PowerMockito.mock(AuditEvent.class); when(mock.getSourceName()).thenReturn("TestModule"); when(mock.getSeverityLevel()).thenReturn(SeverityLevel.WARNING); when(mock.getLine()).thenReturn(1); when(mock.getColumn()).thenReturn(1); when(mock.getMessage()).thenReturn("Mocked message."); when(mock.getFileName()).thenReturn("InputMockFile.java"); final AuditEventFormatter formatter = new AuditEventDefaultFormatter(); final String expected = "[WARN] InputMockFile.java:1:1: Mocked message. [TestModule]"; assertEquals("Invalid format", expected, formatter.format(mock)); }
/** * Checks for a suppression of a check with the given source name and * location in the last file processed. * @param event audit event. * @return whether the check with the given name is suppressed at the given * source location */ public static boolean isSuppressed(AuditEvent event) { final List<Entry> entries = ENTRIES.get(); final String sourceName = event.getSourceName(); final String checkAlias = getAlias(sourceName); final int line = event.getLine(); final int column = event.getColumn(); boolean suppressed = false; for (Entry entry : entries) { final boolean afterStart = isSuppressedAfterEventStart(line, column, entry); final boolean beforeEnd = isSuppressedBeforeEventEnd(line, column, entry); final boolean nameMatches = ALL_WARNING_MATCHING_ID.equals(entry.getCheckName()) || entry.getCheckName().equalsIgnoreCase(checkAlias); final boolean idMatches = event.getModuleId() != null && event.getModuleId().equals(entry.getCheckName()); if (afterStart && beforeEnd && (nameMatches || idMatches)) { suppressed = true; break; } } return suppressed; }
@Test public void testFormatModuleNameContainsCheckSuffix() { final AuditEvent mock = PowerMockito.mock(AuditEvent.class); when(mock.getSourceName()).thenReturn("TestModuleCheck"); when(mock.getSeverityLevel()).thenReturn(SeverityLevel.WARNING); when(mock.getLine()).thenReturn(1); when(mock.getColumn()).thenReturn(1); when(mock.getMessage()).thenReturn("Mocked message."); when(mock.getFileName()).thenReturn("InputMockFile.java"); final AuditEventFormatter formatter = new AuditEventDefaultFormatter(); final String expected = "[WARN] InputMockFile.java:1:1: Mocked message. [TestModule]"; assertEquals("Invalid format", expected, formatter.format(mock)); }
@Override public void addError(AuditEvent event) { final int line = event.getLine(); final String message = event.getMessage(); if (position >= comments.length) { fail("found a warning when none was expected for #" + position + " at line " + line + " with message " + message); } final IndentComment comment = comments[position]; position++; final String possibleExceptedMessages = Arrays.stream(comment.getExpectedMessages()) .reduce("", (cur, next) -> cur + "\"" + next + "\", "); final String assertMessage = String.format( Locale.ROOT, "input expected warning #%d at line %d to report one of the following: %s" + "but got instead: %d: %s", position, comment.getLineNumber(), possibleExceptedMessages, line, message); assertTrue(assertMessage, line == comment.getLineNumber() && Arrays.stream(comment.getExpectedMessages()).anyMatch(message::endsWith)); }
/** * Checks whether {@link AuditEvent} is in the scope of the suppression. * @param event {@link AuditEvent} instance. * @return true if {@link AuditEvent} is in the scope of the suppression. */ private boolean isInScopeOfSuppression(AuditEvent event) { return lineNo <= event.getLine(); }
@VisibleForTesting static Integer getLineId(AuditEvent event) { try { int line = event.getLine(); // checkstyle returns 0 if there is no relation to a file content, but we use null return line == 0 ? null : line; } catch (Exception e) { // checkstyle can throw a NullPointerException if the message is not set return null; } }
@VisibleForTesting static Integer getLineId(AuditEvent event) { try { int line = event.getLine(); // checkstyle returns 0 if there is no relation to a file content, but we use null return line == 0 ? null : line; } catch (Exception e) { // checkstyle can throw a NullPointerException if the message is not set return null; } }
@VisibleForTesting static Integer getLineId(AuditEvent event) { Integer result = null; try { final int line = event.getLine(); // checkstyle returns 0 if there is no relation to a file content, // but we use null if (line != 0) { result = line; } } catch (Exception ex) { LOG.warn("AuditEvent is created incorrectly. Exception happen during getLine()", ex); } return result; }
@Override public void addException(AuditEvent event, Throwable throwable) { LOG.warn(event.getFileName() + ":" + event.getLine() + " " + event.getMessage(), throwable); } }
@Override public void addException(AuditEvent event, Throwable throwable) { LOG.warn(event.getFileName() + ":" + event.getLine() + " " + event.getMessage(), throwable); } }
@Override public void addException(final AuditEvent event, final Throwable throwable) { final String check = event.getSourceName(); Logger.error( this, "%s[%d]: %s (%s), %[exception]s", event.getFileName().substring( this.env.basedir().toString().length() ), event.getLine(), event.getMessage(), check.substring(check.lastIndexOf('.') + 1), throwable ); }
@Override public void addException(final AuditEvent event, final Throwable throwable) { final String check = event.getSourceName(); Logger.error( this, "%s[%d]: %s (%s), %[exception]s", event.getFileName().substring( this.env.basedir().toString().length() ), event.getLine(), event.getMessage(), check.substring(check.lastIndexOf('.') + 1), throwable ); }
/** * Whether line and column match. * @param event event to process. * @return true if line and column match. */ private boolean isLineAndColumnMatch(AuditEvent event) { return (lineFilter != null || columnFilter != null) && (lineFilter == null || !lineFilter.accept(event.getLine())) && (columnFilter == null || !columnFilter.accept(event.getColumn())); }
private String printEvent(AuditEvent event) { final LocalizedMessage msg = event.getLocalizedMessage(); return String.format("%-8s %-40s %s:%d %s", msg.getSeverityLevel(), msg.getKey(), event.getFileName(), event.getLine(), event.getMessage()); } }
private String printEvent(AuditEvent event) { final LocalizedMessage msg = event.getLocalizedMessage(); return String.format("%-8s %-40s %s:%d %s", msg.getSeverityLevel(), msg.getKey(), event.getFileName(), event.getLine(), event.getMessage()); } }