// generated by {{generator}} {{#imports}} import {{.}} {{/imports}} class {{name}}Base extends {{db_id}}{{#bases}}, {{.}}{{/bases}} { {{#root}} string toString() { none() } // overridden by subclasses {{name}}Base getResolveStep() { none() } // overridden by subclasses {{name}}Base resolve() { not exists(getResolveStep()) and result = this or result = getResolveStep().resolve() } {{/root}} {{#final}} override string toString() { result = "{{name}}" } {{/final}} {{#properties}} {{#type_is_class}} {{type}} get{{singular}}({{#params}}{{^first}}, {{/first}}{{type}} {{param}}{{/params}}) { exists({{type}} {{local_var}} | {{tablename}}({{#tableparams}}{{^first}}, {{/first}}{{param}}{{/tableparams}}) and result = {{local_var}}.resolve()) } {{/type_is_class}} {{^type_is_class}} {{type}} get{{singular}}({{#params}}{{^first}}, {{/first}}{{type}} {{param}}{{/params}}) { {{tablename}}({{#tableparams}}{{^first}}, {{/first}}{{param}}{{/tableparams}}) } {{/type_is_class}} {{#indefinite_article}} {{type}} get{{.}}{{singular}}() { result = get{{singular}}({{#params}}{{^first}}, {{/first}}_{{/params}}) } int getNumberOf{{plural}}() { result = count(get{{.}}{{singular}}()) } {{/indefinite_article}} {{/properties}} }