Package com.puppycrawl.tools.checkstyle
Class SarifLogger
java.lang.Object
com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
com.puppycrawl.tools.checkstyle.SarifLogger
- All Implemented Interfaces:
AuditListener,Configurable,Contextualizable,EventListener
Simple SARIF logger.
SARIF stands for the static analysis results interchange format.
See reference
-
Nested Class Summary
Nested classes/interfaces inherited from class com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
AbstractAutomaticBean.OutputStreamOptions -
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final PatternA pattern for two backslashes.private static final intInput stream buffer size.private final booleanClose output stream in auditFinished.private static final StringThe placeholder for column.private static final StringThe placeholder for line.private static final StringThe placeholder for message.private final StringContent for the entire report.private final StringContent for result representing an error without filename or location.private final StringContent for result representing an error with filename only and without source location.private final StringContent for result representing an error with source line and column.private final StringContent for result representing an error with source line only.The results.private static final StringThe placeholder for results.private static final StringThe placeholder for rule id.private static final StringThe placeholder for severity level.private static final StringTwo backslashes to not duplicate strings.private static final PatternA pattern for two backslashes.private static final intUnicode escaping upper limit.private static final intThe length of unicode placeholder.private static final StringThe placeholder for uri.private static final StringThe placeholder for version.private static final PatternA pattern to match a file with a Windows drive letter.private final PrintWriterHelper writer that allows easy encoding and printing. -
Constructor Summary
ConstructorsConstructorDescriptionSarifLogger(OutputStream outputStream, AbstractAutomaticBean.OutputStreamOptions outputStreamOptions) Creates a newSarifLoggerinstance.SarifLogger(OutputStream outputStream, AutomaticBean.OutputStreamOptions outputStreamOptions) Creates a newSarifLoggerinstance. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddError(AuditEvent event) Notify that an audit error was discovered on a specific file.voidaddException(AuditEvent event, Throwable throwable) Notify that an exception happened while performing audit.voidauditFinished(AuditEvent event) Notify that the audit is finished.voidauditStarted(AuditEvent event) Notify that the audit is about to start.static StringEscape \b, \f, \n, \r, \t, \", \\ and U+0000 through U+001F.private static StringescapeUnicode1F(char chr) Escape the character between 0x00 to 0x1F in JSON.voidfileFinished(AuditEvent event) Notify that audit is finished on a specific file.voidfileStarted(AuditEvent event) Notify that audit is about to start on a specific file.protected voidProvides a hook to finish the part of this component's setup that was not handled by the bean introspection.static StringreadResource(String name) Read string from given resource.private static StringrenderFileNameUri(String fileName) Render the file name URI for the given file name.private static StringrenderSeverityLevel(SeverityLevel severityLevel) Render the severity level into SARIF severity level.private static StringreplaceVersionString(String report) Returns the version string.Methods inherited from class com.puppycrawl.tools.checkstyle.AbstractAutomaticBean
configure, contextualize, getConfiguration, setupChild
-
Field Details
-
UNICODE_LENGTH
The length of unicode placeholder.- See Also:
-
UNICODE_ESCAPE_UPPER_LIMIT
Unicode escaping upper limit.- See Also:
-
BUFFER_SIZE
Input stream buffer size.- See Also:
-
MESSAGE_PLACEHOLDER
The placeholder for message.- See Also:
-
SEVERITY_LEVEL_PLACEHOLDER
The placeholder for severity level.- See Also:
-
URI_PLACEHOLDER
The placeholder for uri.- See Also:
-
LINE_PLACEHOLDER
The placeholder for line.- See Also:
-
COLUMN_PLACEHOLDER
The placeholder for column.- See Also:
-
RULE_ID_PLACEHOLDER
The placeholder for rule id.- See Also:
-
VERSION_PLACEHOLDER
The placeholder for version.- See Also:
-
RESULTS_PLACEHOLDER
The placeholder for results.- See Also:
-
TWO_BACKSLASHES
Two backslashes to not duplicate strings.- See Also:
-
A_SPACE_PATTERN
A pattern for two backslashes. -
TWO_BACKSLASHES_PATTERN
A pattern for two backslashes. -
WINDOWS_DRIVE_LETTER_PATTERN
A pattern to match a file with a Windows drive letter. -
writer
Helper writer that allows easy encoding and printing. -
closeStream
Close output stream in auditFinished. -
results
The results. -
report
Content for the entire report. -
resultLineColumn
Content for result representing an error with source line and column. -
resultLineOnly
Content for result representing an error with source line only. -
resultFileOnly
Content for result representing an error with filename only and without source location. -
resultErrorOnly
Content for result representing an error without filename or location.
-
-
Constructor Details
-
SarifLogger
public SarifLogger(OutputStream outputStream, AutomaticBean.OutputStreamOptions outputStreamOptions) throws IOException Creates a newSarifLoggerinstance.- Parameters:
outputStream- where to log audit eventsoutputStreamOptions- ifCLOSEthat should be closed in auditFinished()- Throws:
IllegalArgumentException- if outputStreamOptions is nullIOException- if there is reading errors.
-
SarifLogger
public SarifLogger(OutputStream outputStream, AbstractAutomaticBean.OutputStreamOptions outputStreamOptions) throws IOException Creates a newSarifLoggerinstance.- Parameters:
outputStream- where to log audit eventsoutputStreamOptions- ifCLOSEthat should be closed in auditFinished()- Throws:
IllegalArgumentException- if outputStreamOptions is nullIOException- if there is reading errors.
-
-
Method Details
-
finishLocalSetup
Description copied from class:AbstractAutomaticBeanProvides a hook to finish the part of this component's setup that was not handled by the bean introspection.The default implementation does nothing.
- Specified by:
finishLocalSetupin classAbstractAutomaticBean
-
auditStarted
Description copied from interface:AuditListenerNotify that the audit is about to start.- Specified by:
auditStartedin interfaceAuditListener- Parameters:
event- the event details
-
auditFinished
Description copied from interface:AuditListenerNotify that the audit is finished.- Specified by:
auditFinishedin interfaceAuditListener- Parameters:
event- the event details
-
replaceVersionString
Returns the version string.- Parameters:
report- report content where replace should happen- Returns:
- a version string based on the package implementation version
-
addError
Description copied from interface:AuditListenerNotify that an audit error was discovered on a specific file.- Specified by:
addErrorin interfaceAuditListener- Parameters:
event- the event details
-
addException
Description copied from interface:AuditListenerNotify that an exception happened while performing audit.- Specified by:
addExceptionin interfaceAuditListener- Parameters:
event- the event detailsthrowable- details of the exception
-
fileStarted
Description copied from interface:AuditListenerNotify that audit is about to start on a specific file.- Specified by:
fileStartedin interfaceAuditListener- Parameters:
event- the event details
-
fileFinished
Description copied from interface:AuditListenerNotify that audit is finished on a specific file.- Specified by:
fileFinishedin interfaceAuditListener- Parameters:
event- the event details
-
renderFileNameUri
Render the file name URI for the given file name.- Parameters:
fileName- the file name to render the URI for- Returns:
- the rendered URI for the given file name
-
renderSeverityLevel
Render the severity level into SARIF severity level.- Parameters:
severityLevel- the Severity level.- Returns:
- the rendered severity level in string.
-
escape
Escape \b, \f, \n, \r, \t, \", \\ and U+0000 through U+001F. See reference - 2.5. Strings- Parameters:
value- the value to escape.- Returns:
- the escaped value if necessary.
-
escapeUnicode1F
Escape the character between 0x00 to 0x1F in JSON.- Parameters:
chr- the character to be escaped.- Returns:
- the escaped string.
-
readResource
Read string from given resource.- Parameters:
name- name of the desired resource- Returns:
- the string content from the give resource
- Throws:
IOException- if there is reading errors
-