UNPKG

@accordproject/concerto-core

Version:

Core Implementation for the Concerto Modeling Language

66 lines (65 loc) 1.86 kB
/** * Decorated defines a model element that may have decorators attached. * * @private * @abstract * @class * @memberof module:concerto-core */ declare class Decorated { ast: any; decorators: any[]; /** * Create a Decorated from an Abstract Syntax Tree. The AST is the * result of parsing. * * @param {string} ast - the AST created by the parser * @throws {IllegalModelException} */ constructor(ast: any); /** * Returns the ModelFile that defines this class. * * @abstract * @protected * @return {ModelFile} the owning ModelFile */ getModelFile(): void; /** * Visitor design pattern * @param {Object} visitor - the visitor * @param {Object} parameters - the parameter * @return {Object} the result of visiting or null */ accept(visitor: any, parameters: any): any; /** * Process the AST and build the model * * @throws {IllegalModelException} * @private */ process(): void; /** * Semantic validation of the structure of this decorated. Subclasses should * override this method to impose additional semantic constraints on the * contents/relations of fields. * * @param {...*} args the validation arguments * @throws {IllegalModelException} * @protected */ validate(...args: any[]): void; /** * Returns the decorators for this class. * * @return {Decorator[]} the decorators for the class */ getDecorators(): any[]; /** * Returns the decorator for this class with a given name. * @param {string} name - the name of the decorator * @return {Decorator} the decorator attached to this class with the given name, or null if it does not exist. */ getDecorator(name: any): any; } export = Decorated;