@tripsnek/tmf
Version:
TypeScript Modeling Framework - A TypeScript port of the Eclipse Modeling Framework (EMF)
34 lines (33 loc) • 1.23 kB
JavaScript
import { TGenUtils as DU } from './tgen-utils';
/**
* Source code generation for *impl.ts files for EClasses.
*
* @tripsnek
*/
export class TGeneratorImpl {
generate(eClass, toImport) {
const genClassName = DU.genGenClassName(eClass);
const apiClassName = eClass.getName();
const implClassName = DU.genImplClassName(eClass);
const isEcore = eClass.getEPackage().getName() == 'ecore';
return `
${isEcore ? DU.ECORE_DEFAULT_IMPORTS : DU.DEFAULT_IMPORTS}
${DU.genApiImports(eClass, toImport, '..' + DU.API_PATH)}
import {${genClassName}} from '..${DU.GEN_PATH}/${DU.genClassGenName(eClass)}'
import { ${apiClassName} } from '..${DU.API_PATH}/${DU.genClassApiName(eClass)}';
/**
* Editable Impl class.
*/
export class ${implClassName} extends ${genClassName}{
${this.generateOperations(eClass)}
}`;
}
generateOperations(eClass) {
let result = '';
for (const eop of eClass.getEOperations()) {
result += `public override ${DU.eopSignature(eop)} {throw new Error('Not implemented');}`;
}
return result;
}
}
//# sourceMappingURL=tgenerator-impl.js.map