@accordproject/concerto-core
Version:
Core Implementation for the Concerto Modeling Language
66 lines (65 loc) • 1.86 kB
TypeScript
/**
* 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;