Package dev.metaschema.modules.sarif
Class SarifValidationHandler
java.lang.Object
dev.metaschema.modules.sarif.SarifValidationHandler
- All Implemented Interfaces:
dev.metaschema.core.model.constraint.ValidationEventListener
public final class SarifValidationHandler
extends Object
implements dev.metaschema.core.model.constraint.ValidationEventListener
Supports building a Static Analysis Results Interchange Format (SARIF)
document based on a set of validation findings.
-
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final dev.metaschema.core.model.IAttributable.KeyThe property key for specifying markdown-formatted help content for a constraint.static final dev.metaschema.core.model.IAttributable.KeyThe property key for specifying plain text help content for a constraint.static final dev.metaschema.core.model.IAttributable.KeyThe property key for specifying a URL that provides help information for a constraint. -
Constructor Summary
ConstructorsConstructorDescriptionSarifValidationHandler(URI source, dev.metaschema.core.util.IVersionInfo toolVersion) Construct a new validation handler. -
Method Summary
Modifier and TypeMethodDescriptionvoidaddFinding(dev.metaschema.core.model.validation.IValidationFinding finding) Register a validation finding.voidaddFindings(Collection<? extends dev.metaschema.core.model.validation.IValidationFinding> findings) Register a collection of validation finding.voidafterConstraintEvaluation(dev.metaschema.core.model.constraint.IConstraint constraint, dev.metaschema.core.metapath.item.node.INodeItem target) voidafterLetEvaluation(dev.metaschema.core.model.constraint.ILet let) voidafterPhase(dev.metaschema.core.model.constraint.ValidationPhase phase) voidafterValidation(URI document) voidbeforeConstraintEvaluation(dev.metaschema.core.model.constraint.IConstraint constraint, dev.metaschema.core.metapath.item.node.INodeItem target) voidbeforeLetEvaluation(dev.metaschema.core.model.constraint.ILet let) voidbeforePhase(dev.metaschema.core.model.constraint.ValidationPhase phase) voidbeforeValidation(URI document) voidsetTimingCollector(dev.metaschema.core.model.constraint.TimingCollector collector) Set the timing collector to enrich SARIF output with performance data.voidWrite the collection of findings to the provided output file.writeToString(dev.metaschema.databind.IBindingContext bindingContext) Write the collection of findings to a string in SARIF format.
-
Field Details
-
SARIF_HELP_URL_KEY
The property key for specifying a URL that provides help information for a constraint. -
SARIF_HELP_TEXT_KEY
The property key for specifying plain text help content for a constraint. -
SARIF_HELP_MARKDOWN_KEY
The property key for specifying markdown-formatted help content for a constraint.
-
-
Constructor Details
-
SarifValidationHandler
public SarifValidationHandler(@NonNull URI source, @Nullable dev.metaschema.core.util.IVersionInfo toolVersion) Construct a new validation handler.- Parameters:
source- the URI of the content that was validatedtoolVersion- the version information for the tool producing the validation results
-
-
Method Details
-
setTimingCollector
public void setTimingCollector(@Nullable dev.metaschema.core.model.constraint.TimingCollector collector) Set the timing collector to enrich SARIF output with performance data.When set, the generated SARIF document will include:
- An invocation element with start/end timestamps
- Phase timing as tool execution notifications
- Per-constraint timing in rule properties
- Parameters:
collector- the timing collector containing measurement data, ornullto disable timing output
-
beforeValidation
- Specified by:
beforeValidationin interfacedev.metaschema.core.model.constraint.ValidationEventListener
-
afterValidation
- Specified by:
afterValidationin interfacedev.metaschema.core.model.constraint.ValidationEventListener
-
beforePhase
- Specified by:
beforePhasein interfacedev.metaschema.core.model.constraint.ValidationEventListener
-
afterPhase
- Specified by:
afterPhasein interfacedev.metaschema.core.model.constraint.ValidationEventListener
-
beforeConstraintEvaluation
public void beforeConstraintEvaluation(@NonNull dev.metaschema.core.model.constraint.IConstraint constraint, @NonNull dev.metaschema.core.metapath.item.node.INodeItem target) - Specified by:
beforeConstraintEvaluationin interfacedev.metaschema.core.model.constraint.ValidationEventListener
-
afterConstraintEvaluation
public void afterConstraintEvaluation(@NonNull dev.metaschema.core.model.constraint.IConstraint constraint, @NonNull dev.metaschema.core.metapath.item.node.INodeItem target) - Specified by:
afterConstraintEvaluationin interfacedev.metaschema.core.model.constraint.ValidationEventListener
-
beforeLetEvaluation
- Specified by:
beforeLetEvaluationin interfacedev.metaschema.core.model.constraint.ValidationEventListener
-
afterLetEvaluation
- Specified by:
afterLetEvaluationin interfacedev.metaschema.core.model.constraint.ValidationEventListener
-
addFindings
public void addFindings(@NonNull Collection<? extends dev.metaschema.core.model.validation.IValidationFinding> findings) Register a collection of validation finding.- Parameters:
findings- the findings to register
-
addFinding
Register a validation finding.- Parameters:
finding- the finding to register
-
writeToString
@NonNull public String writeToString(@NonNull dev.metaschema.databind.IBindingContext bindingContext) throws IOException Write the collection of findings to a string in SARIF format.- Parameters:
bindingContext- the context used to access Metaschema module information based on Java class bindings- Returns:
- the SARIF document as a string
- Throws:
IOException- if an error occurred while generating the SARIF document
-
write
public void write(@NonNull Path outputFile, @NonNull dev.metaschema.databind.IBindingContext bindingContext) throws IOException Write the collection of findings to the provided output file.- Parameters:
outputFile- the path to the output file to write tobindingContext- the context used to access Metaschema module information based on Java class bindings- Throws:
IOException- if an error occurred while writing the SARIF file
-