import { EntityMetadata } from "../metadata/EntityMetadata";
|
import { EmbeddedMetadata } from "../metadata/EmbeddedMetadata";
|
import { MetadataArgsStorage } from "../metadata-args/MetadataArgsStorage";
|
import { EmbeddedMetadataArgs } from "../metadata-args/EmbeddedMetadataArgs";
|
import { TableMetadataArgs } from "../metadata-args/TableMetadataArgs";
|
import { JunctionEntityMetadataBuilder } from "./JunctionEntityMetadataBuilder";
|
import { ClosureJunctionEntityMetadataBuilder } from "./ClosureJunctionEntityMetadataBuilder";
|
import { RelationJoinColumnBuilder } from "./RelationJoinColumnBuilder";
|
import { Connection } from "../connection/Connection";
|
/**
|
* Builds EntityMetadata objects and all its sub-metadatas.
|
*/
|
export declare class EntityMetadataBuilder {
|
private connection;
|
private metadataArgsStorage;
|
/**
|
* Used to build entity metadatas of the junction entities.
|
*/
|
protected junctionEntityMetadataBuilder: JunctionEntityMetadataBuilder;
|
/**
|
* Used to build entity metadatas of the closure junction entities.
|
*/
|
protected closureJunctionEntityMetadataBuilder: ClosureJunctionEntityMetadataBuilder;
|
/**
|
* Used to build join columns of the relations.
|
*/
|
protected relationJoinColumnBuilder: RelationJoinColumnBuilder;
|
constructor(connection: Connection, metadataArgsStorage: MetadataArgsStorage);
|
/**
|
* Builds a complete entity metadatas for the given entity classes.
|
*/
|
build(entityClasses?: Function[]): EntityMetadata[];
|
/**
|
* Creates entity metadata from the given table args.
|
* Creates column, relation, etc. metadatas for everything this entity metadata owns.
|
*/
|
protected createEntityMetadata(tableArgs: TableMetadataArgs): EntityMetadata;
|
protected computeParentEntityMetadata(allEntityMetadatas: EntityMetadata[], entityMetadata: EntityMetadata): void;
|
protected computeEntityMetadataStep1(allEntityMetadatas: EntityMetadata[], entityMetadata: EntityMetadata): void;
|
/**
|
* Creates from the given embedded metadata args real embedded metadatas with its columns and relations,
|
* and does the same for all its sub-embeddeds (goes recursively).
|
*/
|
protected createEmbeddedsRecursively(entityMetadata: EntityMetadata, embeddedArgs: EmbeddedMetadataArgs[]): EmbeddedMetadata[];
|
/**
|
* Computes all entity metadata's computed properties, and all its sub-metadatas (relations, columns, embeds, etc).
|
*/
|
protected computeEntityMetadataStep2(entityMetadata: EntityMetadata): void;
|
/**
|
* Computes entity metadata's relations inverse side properties.
|
*/
|
protected computeInverseProperties(entityMetadata: EntityMetadata, entityMetadatas: EntityMetadata[]): void;
|
/**
|
* Creates indices for the table of single table inheritance.
|
*/
|
protected createKeysForTableInheritance(entityMetadata: EntityMetadata): void;
|
}
|