UNPKG

@yellicode/elements

Version:

The meta model API for Yellicode - an extensible code generator.

41 lines (40 loc) 1.8 kB
import { ModelDelegateImpl } from './model-delegate'; import * as elements from './interfaces'; import * as classes from './classes'; export declare abstract class ElementBuilderBase<TElement extends elements.Element> { protected element: TElement; protected modelDelegate: ModelDelegateImpl; private elementMap; constructor(element: TElement, modelDelegate: ModelDelegateImpl); protected addToElementMap(element: elements.Element): void; } export declare class PropertyBuilder extends ElementBuilderBase<classes.Property> { constructor(element: classes.Property, modelDelegate: ModelDelegateImpl); } export declare class MemberedClassifierBuilder extends ElementBuilderBase<elements.MemberedClassifier> { constructor(element: elements.MemberedClassifier, modelDelegate: ModelDelegateImpl); addAttribute(properties: { name: string; id?: string; }, initFn?: (attribute: PropertyBuilder) => void): this; } export declare class InterfaceBuilder extends MemberedClassifierBuilder { constructor(element: classes.Interface, modelDelegate: ModelDelegateImpl); } export declare class ClassBuilder extends MemberedClassifierBuilder { constructor(element: classes.Class, modelDelegate: ModelDelegateImpl); } export declare class PackageBuilder extends ElementBuilderBase<elements.Package> { constructor(element: classes.Package, modelDelegate: ModelDelegateImpl); addClass(properties: { name: string; id?: string; }, initFn?: (cls: ClassBuilder) => void): this; private createPackageableElement; } export declare class ModelBuilder extends PackageBuilder { private model; private constructor(); static create(name: string): ModelBuilder; build(): elements.Model; }