mirror of
https://github.com/github/codeql.git
synced 2025-12-22 11:46:32 +01:00
74 lines
2.0 KiB
Plaintext
74 lines
2.0 KiB
Plaintext
// generated by {{generator}}
|
|
private import codeql.swift.generated.Synth
|
|
private import codeql.swift.generated.Raw
|
|
{{#imports}}
|
|
import {{.}}
|
|
{{/imports}}
|
|
|
|
class {{name}}Base extends Synth::T{{name}}{{#bases}}, {{.}}{{/bases}} {
|
|
{{#root}}
|
|
string toString() { none() } // overridden by subclasses
|
|
|
|
string getAPrimaryQlClass() { none() } // overridden by subclasses
|
|
|
|
final string getPrimaryQlClasses() { result = concat(this.getAPrimaryQlClass(), ",") }
|
|
|
|
{{name}}Base getResolveStep() { none() } // overridden by subclasses
|
|
|
|
final {{name}}Base resolve() {
|
|
not exists(getResolveStep()) and result = this
|
|
or
|
|
result = getResolveStep().resolve()
|
|
}
|
|
{{/root}}
|
|
{{#final}}
|
|
override string getAPrimaryQlClass() { result = "{{name}}" }
|
|
{{/final}}
|
|
{{#properties}}
|
|
|
|
{{#type_is_class}}
|
|
{{type}} getImmediate{{singular}}({{#is_repeated}}int index{{/is_repeated}}) {
|
|
{{^ipa}}
|
|
result = Synth::convert{{type}}FromRaw(Synth::convert{{name}}ToRaw(this){{^root}}.(Raw::{{name}}){{/root}}.{{getter}}({{#is_repeated}}index{{/is_repeated}}))
|
|
{{/ipa}}
|
|
{{#ipa}}
|
|
none()
|
|
{{/ipa}}
|
|
}
|
|
|
|
final {{type}} {{getter}}({{#is_repeated}}int index{{/is_repeated}}) {
|
|
result = getImmediate{{singular}}({{#is_repeated}}index{{/is_repeated}}).resolve()
|
|
}
|
|
|
|
{{/type_is_class}}
|
|
{{^type_is_class}}
|
|
{{type}} {{getter}}({{#is_repeated}}int index{{/is_repeated}}) {
|
|
{{^ipa}}
|
|
{{^is_predicate}}result = {{/is_predicate}}Synth::convert{{name}}ToRaw(this){{^root}}.(Raw::{{name}}){{/root}}.{{getter}}({{#is_repeated}}index{{/is_repeated}})
|
|
{{/ipa}}
|
|
{{#ipa}}
|
|
none()
|
|
{{/ipa}}
|
|
}
|
|
|
|
{{/type_is_class}}
|
|
{{#is_optional}}
|
|
final predicate has{{singular}}({{#is_repeated}}int index{{/is_repeated}}) {
|
|
exists({{getter}}({{#is_repeated}}index{{/is_repeated}}))
|
|
}
|
|
{{/is_optional}}
|
|
{{#is_repeated}}
|
|
|
|
final {{type}} {{indefinite_getter}}() {
|
|
result = {{getter}}(_)
|
|
}
|
|
{{^is_optional}}
|
|
|
|
final int getNumberOf{{plural}}() {
|
|
result = count({{indefinite_getter}}())
|
|
}
|
|
{{/is_optional}}
|
|
{{/is_repeated}}
|
|
{{/properties}}
|
|
}
|