// generated by {{generator}} {{#imports}} import {{.}} {{/imports}} class {{name}}Base extends {{db_id}}{{#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 {{name}}Base resolve() { not exists(getResolveStep()) and result = this or result = getResolveStep().resolve() } {{/root}} {{#final}} override string getAPrimaryQlClass() { result = "{{name}}" } {{/final}} {{#properties}} {{type}} {{getter}}({{#is_repeated}}int index{{/is_repeated}}) { {{#type_is_class}} exists({{type}} {{local_var}} | {{tablename}}({{#tableparams}}{{^first}}, {{/first}}{{param}}{{/tableparams}}) and result = {{local_var}}.resolve()) {{/type_is_class}} {{^type_is_class}} {{tablename}}({{#tableparams}}{{^first}}, {{/first}}{{param}}{{/tableparams}}) {{/type_is_class}} } {{#is_optional}} predicate has{{singular}}({{#is_repeated}}int index{{/is_repeated}}) { exists({{getter}}({{#is_repeated}}index{{/is_repeated}})) } {{/is_optional}} {{#is_repeated}} {{type}} {{indefinite_getter}}() { result = {{getter}}(_) } {{^is_optional}} int getNumberOf{{plural}}() { result = count({{indefinite_getter}}()) } {{/is_optional}} {{/is_repeated}} {{/properties}} }