import type { Embedded } from '@lcap/nasl-types'; import { TranslatorGenerator } from '@lcap/nasl-translator'; import type Module from './Module__'; export declare enum NamingConvention { snakeAllLowerCase = "snakeAllLowerCase", snakeAllUpperCase = "snakeAllUpperCase", camelCase = "camelCase" } import BaseNode from '../common/BaseNode'; import type Entity from './Entity__'; import Configuration from './Configuration__'; import type Directory from './Directory__'; /** * 数据源 */ export declare class DataSource extends BaseNode { /** 类名 */ static readonly ConceptName: string; /** * 是否为抽象类 * 抽象类不能产生 concept: string */ static isAbstract: boolean; /** 继承链 */ static readonly inheritanceChain: string[]; /** * 产品概念 */ readonly concept: 'DataSource'; /** * 数据源名称 */ name: string; /** * 数据源描述 */ description: string; /** * 实体列表 */ entities: Array; /** * ddl策略 */ ddlStrategy: 'all' | 'originNotTable' | 'none'; /** * 数据表命名规则 */ tableNamingConvention?: 'snakeAllLowerCase' | 'snakeAllUpperCase' | 'camelCase'; /** * 数据列命名规则 */ columnNamingConvention?: 'snakeAllLowerCase' | 'snakeAllUpperCase' | 'camelCase'; /** * 配置管理 */ configuration?: Configuration; /** * 文件夹列表 */ directories: Array; /** * @param source 需要合并的部分参数 */ constructor(source?: Partial); static from(source: any, parentNode?: any, parentKey?: string): DataSource; /** * 设置数据源描述 */ setDescription(description: string): void; /** * 设置数据表命名规则 */ setTableNamingConvention(tableNamingConvention: 'snakeAllLowerCase' | 'snakeAllUpperCase' | 'camelCase'): void; /** * 设置数据列命名规则 */ setColumnNamingConvention(columnNamingConvention: 'snakeAllLowerCase' | 'snakeAllUpperCase' | 'camelCase'): void; getEntityExistingNames(excludedList?: Array): string[]; getEntityUniqueName(name?: string): string; /** * 插入实体 * @internal * @param name 实体名称,如果不填会自动生成一个唯一名称 */ _insertEntityAt(name: string, index: number): Entity; /** * 插入实体 * @internal * @param entityOptions 实体参数 */ _insertEntityAt(entityOptions: Partial, index: number): Entity; /** * 插入实体 * @internal * @param entity 已有的实体实例 */ _insertEntityAt(entity: Entity, index: number): Entity; /** * 插入实体 * @param name 实体名称,如果不填会自动生成一个唯一名称 */ insertEntityAt(name: string, index: number): Entity; /** * 插入实体 * @param entityOptions 实体参数 */ insertEntityAt(entityOptions: Partial, index: number): Entity; /** * 插入实体 * @param entity 已有的实体实例 */ insertEntityAt(entity: Entity, index: number): Entity; /** * 添加实体 * @internal * @param name 实体名称,如果不填会自动生成一个唯一名称 */ _addEntity(name?: string): Entity; /** * 添加实体 * @internal * @param entityOptions 实体参数 */ _addEntity(entityOptions: Partial): Entity; /** * 添加实体 * @internal * @param entity 已有的实体实例 */ _addEntity(entity: Entity): Entity; /** * 添加实体 * @internal * @param name 实体名称,如果不填会自动生成一个唯一名称 */ addEntity(name?: string): Entity; /** * 添加实体 * @param entityOptions 实体参数 */ addEntity(entityOptions: Partial): Entity; /** * 添加实体 * @param entity 已有的实体实例 */ addEntity(entity: Entity): Entity; getDirectoryExistingNames(excludedList?: Array): string[]; getDirectoryUniqueName(name?: string): string; /** * 插入文件夹 * @internal * @param name 文件夹名称,如果不填会自动生成一个唯一名称 */ _insertDirectoryAt(name: string, index: number): Directory; /** * 插入文件夹 * @internal * @param directoryOptions 文件夹参数 */ _insertDirectoryAt(directoryOptions: Partial, index: number): Directory; /** * 插入文件夹 * @internal * @param directory 已有的文件夹实例 */ _insertDirectoryAt(directory: Directory, index: number): Directory; /** * 插入文件夹 * @param name 文件夹名称,如果不填会自动生成一个唯一名称 */ insertDirectoryAt(name: string, index: number): Directory; /** * 插入文件夹 * @param directoryOptions 文件夹参数 */ insertDirectoryAt(directoryOptions: Partial, index: number): Directory; /** * 插入文件夹 * @param directory 已有的文件夹实例 */ insertDirectoryAt(directory: Directory, index: number): Directory; /** * 添加文件夹 * @internal * @param name 文件夹名称,如果不填会自动生成一个唯一名称 */ _addDirectory(name?: string): Directory; /** * 添加文件夹 * @internal * @param directoryOptions 文件夹参数 */ _addDirectory(directoryOptions: Partial): Directory; /** * 添加文件夹 * @internal * @param directory 已有的文件夹实例 */ _addDirectory(directory: Directory): Directory; /** * 添加文件夹 * @internal * @param name 文件夹名称,如果不填会自动生成一个唯一名称 */ addDirectory(name?: string): Directory; /** * 添加文件夹 * @param directoryOptions 文件夹参数 */ addDirectory(directoryOptions: Partial): Directory; /** * 添加文件夹 * @param directory 已有的文件夹实例 */ addDirectory(directory: Directory): Directory; /** * 删除实体 * @param name 实体名称 */ removeEntity(name: string): void; /** * 删除实体 * @param entity 已有的实体实例 */ removeEntity(entity: Entity): void; /** * 删除文件夹 * @param name 文件夹名称 */ removeDirectory(name: string): void; /** * 删除文件夹 * @param directory 已有的文件夹实例 */ removeDirectory(directory: Directory): void; /** * 是否为多模式数据源、 * 多模式数据源:数据表名需要加上模式名前缀 */ multiSchema: boolean; addEntityWithProcessV2s(options?: string | Partial | Entity): Entity; /** * 祖先 Module */ get module(): Module; findEntityByName(name: string): Entity; /** * 设置DataSource的名称 */ setName(name: string): void; getNamespace(): string; getEntityExistingTableNames(excludedList?: Array): string[]; getEntityUniqueTableName(name?: string, excludedList?: Array): string; /** * 根据全局设置中的数据库命名规则,生成 实体表名 */ genFormatEntityTableName(entity: Entity, useEntityName?: boolean): any; /** * 生成宿主语言的文件路径 * @param name 一般不用传,用于 rename */ getEmbeddedFilePath(name?: string): string; toEmbeddedTS(state?: import("@lcap/nasl-types/out/translator").TranslatorState): TranslatorGenerator; toEmbeddedTSFile(): Embedded.TSFileGenerator; toEmbeddedDeclarationTSFile(): Embedded.DeclarationTSFileResult; toNaturalTS(state?: import("@lcap/nasl-types/out/translator").TranslatorState): string; toTextualNASL(state?: import("@lcap/nasl-types/out/translator").TranslatorState): string; pingDatabase(recordEnvConnectError: Function): Promise; recordEnvConnectError(records: any[], env: string): void; get devConfigId(): any; get dataSourceSqlType(): any; get dataSourceConfig(): any; get completeName(): string; getDataQueryRelatedLogics(): Promise; checkDataQueryRelatedLogics(): Promise; getTableNamingConvention(): NamingConvention; getColumnNamingConvention(): string; getEntityTree(): { items: Entity[]; directories: Directory[]; }; __hasDatabaseConfig: Boolean; initConfiguration(): Configuration; coverConfiguration(configuration: Configuration): void; } export default DataSource; //# sourceMappingURL=DataSource__.d.ts.map