22 * Provides classes and predicates related to validating models-as-data rows.
33 */
44
5- /** Holds if a model exists for the given `kind`. */
6- signature predicate modelKindSig ( string kind ) ;
5+ /** Provides predicates for determining if a model exists for a given `kind`. */
6+ signature module KindValidationConfigSig {
7+ /** Holds if a summary model exists for the given `kind`. */
8+ predicate summaryKind ( string kind ) ;
9+
10+ /** Holds if a sink model exists for the given `kind`. */
11+ predicate sinkKind ( string kind ) ;
12+
13+ /** Holds if a source model exists for the given `kind`. */
14+ predicate sourceKind ( string kind ) ;
15+
16+ /** Holds if a neutral model exists for the given `kind`. */
17+ default predicate neutralKind ( string kind ) { none ( ) }
18+ }
719
820/** Provides validation for models-as-data summary, sink, source, and neutral kinds. */
9- module KindValidation<
10- modelKindSig / 1 summaryKind, modelKindSig / 1 sinkKind, modelKindSig / 1 sourceKind,
11- modelKindSig / 1 neutralKind>
12- {
21+ module KindValidation< KindValidationConfigSig Config> {
1322 /** A valid models-as-data sink kind. */
1423 private class ValidSinkKind extends string {
1524 bindingset [ this ]
@@ -150,12 +159,12 @@ module KindValidation<
150159
151160 /** Gets an error message relating to an invalid kind in a model. */
152161 string getInvalidModelKind ( ) {
153- exists ( string kind | summaryKind ( kind ) |
162+ exists ( string kind | Config :: summaryKind ( kind ) |
154163 not kind instanceof ValidSummaryKind and
155164 result = "Invalid kind \"" + kind + "\" in summary model."
156165 )
157166 or
158- exists ( string kind , string msg | sinkKind ( kind ) |
167+ exists ( string kind , string msg | Config :: sinkKind ( kind ) |
159168 not kind instanceof ValidSinkKind and
160169 msg = "Invalid kind \"" + kind + "\" in sink model." and
161170 // The part of this message that refers to outdated sink kinds can be deleted after June 1st, 2024.
@@ -164,12 +173,12 @@ module KindValidation<
164173 else result = msg
165174 )
166175 or
167- exists ( string kind | sourceKind ( kind ) |
176+ exists ( string kind | Config :: sourceKind ( kind ) |
168177 not kind instanceof ValidSourceKind and
169178 result = "Invalid kind \"" + kind + "\" in source model."
170179 )
171180 or
172- exists ( string kind | neutralKind ( kind ) |
181+ exists ( string kind | Config :: neutralKind ( kind ) |
173182 not kind instanceof ValidNeutralKind and
174183 result = "Invalid kind \"" + kind + "\" in neutral model."
175184 )
0 commit comments