Shared: use a module as input to 'KindValidation'

This commit is contained in:
Jami Cogswell
2023-06-09 14:35:37 -04:00
parent bcba1f3a4d
commit 9abe3e3da4
8 changed files with 63 additions and 85 deletions

View File

@@ -655,20 +655,15 @@ module ModelOutput {
import Specific::ModelOutputSpecific
private import codeql.mad.ModelValidation as SharedModelVal
/** Holds if a summary model exists for the given `kind`. */
private predicate summaryKind(string kind) { summaryModel(_, _, _, _, kind) }
private module KindValConfig implements SharedModelVal::KindValidationConfigSig {
predicate summaryKind(string kind) { summaryModel(_, _, _, _, kind) }
/** Holds if a sink model exists for the given `kind`. */
private predicate sinkKind(string kind) { sinkModel(_, _, kind) }
predicate sinkKind(string kind) { sinkModel(_, _, kind) }
/** Holds if a source model exists for the given `kind`. */
private predicate sourceKind(string kind) { sourceModel(_, _, kind) }
predicate sourceKind(string kind) { sourceModel(_, _, kind) }
}
/** Holds if a neutral model exists for the given `kind`. */
private predicate neutralKind(string kind) { none() }
private module KindVal =
SharedModelVal::KindValidation<summaryKind/1, sinkKind/1, sourceKind/1, neutralKind/1>;
private module KindVal = SharedModelVal::KindValidation<KindValConfig>;
/**
* Gets an error message relating to an invalid CSV row in a model.