import { ColumnMetadata } from "./ColumnMetadata";
|
import { RelationMetadata } from "./RelationMetadata";
|
import { EntityMetadata } from "./EntityMetadata";
|
import { EmbeddedMetadataArgs } from "../metadata-args/EmbeddedMetadataArgs";
|
import { RelationIdMetadata } from "./RelationIdMetadata";
|
import { RelationCountMetadata } from "./RelationCountMetadata";
|
import { Connection } from "../connection/Connection";
|
import { EntityListenerMetadata } from "./EntityListenerMetadata";
|
import { IndexMetadata } from "./IndexMetadata";
|
import { UniqueMetadata } from "./UniqueMetadata";
|
/**
|
* Contains all information about entity's embedded property.
|
*/
|
export declare class EmbeddedMetadata {
|
/**
|
* Entity metadata where this embedded is.
|
*/
|
entityMetadata: EntityMetadata;
|
/**
|
* Parent embedded in the case if this embedded inside other embedded.
|
*/
|
parentEmbeddedMetadata?: EmbeddedMetadata;
|
/**
|
* Embedded target type.
|
*/
|
type: Function;
|
/**
|
* Property name on which this embedded is attached.
|
*/
|
propertyName: string;
|
/**
|
* Gets full path to this embedded property (including embedded property name).
|
* Full path is relevant when embedded is used inside other embeds (one or multiple nested).
|
* For example it will return "counters.subcounters".
|
*/
|
propertyPath: string;
|
/**
|
* Columns inside this embed.
|
*/
|
columns: ColumnMetadata[];
|
/**
|
* Relations inside this embed.
|
*/
|
relations: RelationMetadata[];
|
/**
|
* Entity listeners inside this embed.
|
*/
|
listeners: EntityListenerMetadata[];
|
/**
|
* Indices applied to the embed columns.
|
*/
|
indices: IndexMetadata[];
|
/**
|
* Uniques applied to the embed columns.
|
*/
|
uniques: UniqueMetadata[];
|
/**
|
* Relation ids inside this embed.
|
*/
|
relationIds: RelationIdMetadata[];
|
/**
|
* Relation counts inside this embed.
|
*/
|
relationCounts: RelationCountMetadata[];
|
/**
|
* Nested embeddable in this embeddable (which has current embedded as parent embedded).
|
*/
|
embeddeds: EmbeddedMetadata[];
|
/**
|
* Indicates if this embedded is in array mode.
|
*
|
* This option works only in mongodb.
|
*/
|
isArray: boolean;
|
/**
|
* Prefix of the embedded, used instead of propertyName.
|
* If set to empty string or false, then prefix is not set at all.
|
*/
|
customPrefix: string | boolean | undefined;
|
/**
|
* Gets the prefix of the columns.
|
* By default its a property name of the class where this prefix is.
|
* But if custom prefix is set then it takes its value as a prefix.
|
* However if custom prefix is set to empty string or false, then prefix to column is not applied at all.
|
*/
|
prefix: string;
|
/**
|
* Returns array of property names of current embed and all its parent embeds.
|
*
|
* example: post[data][information][counters].id where "data", "information" and "counters" are embeds
|
* we need to get value of "id" column from the post real entity object.
|
* this method will return ["data", "information", "counters"]
|
*/
|
parentPropertyNames: string[];
|
/**
|
* Returns array of prefixes of current embed and all its parent embeds.
|
*/
|
parentPrefixes: string[];
|
/**
|
* Returns embed metadatas from all levels of the parent tree.
|
*
|
* example: post[data][information][counters].id where "data", "information" and "counters" are embeds
|
* this method will return [embed metadata of data, embed metadata of information, embed metadata of counters]
|
*/
|
embeddedMetadataTree: EmbeddedMetadata[];
|
/**
|
* Embed metadatas from all levels of the parent tree.
|
*
|
* example: post[data][information][counters].id where "data", "information" and "counters" are embeds
|
* this method will return [embed metadata of data, embed metadata of information, embed metadata of counters]
|
*/
|
columnsFromTree: ColumnMetadata[];
|
/**
|
* Relations of this embed and all relations from its child embeds.
|
*/
|
relationsFromTree: RelationMetadata[];
|
/**
|
* Relations of this embed and all relations from its child embeds.
|
*/
|
listenersFromTree: EntityListenerMetadata[];
|
/**
|
* Indices of this embed and all indices from its child embeds.
|
*/
|
indicesFromTree: IndexMetadata[];
|
/**
|
* Uniques of this embed and all uniques from its child embeds.
|
*/
|
uniquesFromTree: UniqueMetadata[];
|
/**
|
* Relation ids of this embed and all relation ids from its child embeds.
|
*/
|
relationIdsFromTree: RelationIdMetadata[];
|
/**
|
* Relation counts of this embed and all relation counts from its child embeds.
|
*/
|
relationCountsFromTree: RelationCountMetadata[];
|
constructor(options: {
|
entityMetadata: EntityMetadata;
|
args: EmbeddedMetadataArgs;
|
});
|
/**
|
* Creates a new embedded object.
|
*/
|
create(): any;
|
build(connection: Connection): this;
|
protected buildPartialPrefix(): string[];
|
protected buildPrefix(connection: Connection): string;
|
protected buildParentPropertyNames(): string[];
|
protected buildParentPrefixes(): string[];
|
protected buildEmbeddedMetadataTree(): EmbeddedMetadata[];
|
protected buildColumnsFromTree(): ColumnMetadata[];
|
protected buildRelationsFromTree(): RelationMetadata[];
|
protected buildListenersFromTree(): EntityListenerMetadata[];
|
protected buildIndicesFromTree(): IndexMetadata[];
|
protected buildUniquesFromTree(): UniqueMetadata[];
|
protected buildRelationIdsFromTree(): RelationIdMetadata[];
|
protected buildRelationCountsFromTree(): RelationCountMetadata[];
|
}
|