hydrate-mongodb
Version:
An Object Document Mapper (ODM) for MongoDB.
43 lines (42 loc) • 2.09 kB
TypeScript
import { ObjectMapping } from "./objectMapping";
import { Reference } from "../reference";
import { MappingModel } from "./mappingModel";
import { InternalSession } from "../session";
import { ResultCallback } from "../core/callback";
import { ReadContext } from "./readContext";
import { WriteContext } from "./writeContext";
export declare class ClassMapping extends ObjectMapping {
private _baseClass;
private _subclasses;
private _discriminatorMap;
private _registry;
inheritanceRoot: ClassMapping;
name: string;
discriminatorField: string;
classConstructor: Function;
constructor(baseClass?: ClassMapping);
private _discriminatorValue;
readonly discriminatorValue: string;
setDiscriminatorValue(value: string): void;
setQueryDocumentDiscriminator(obj: any): void;
setDocumentDiscriminator(obj: any): void;
getDocumentDiscriminator(obj: any): string;
private _getDescendantDiscriminators(discriminators);
readonly hasSubClasses: boolean;
readonly hasBaseClass: boolean;
private _addSubClass(subclass);
private _addDiscriminatorMapping(value, mapping);
private _ensureRegistry();
read(context: ReadContext, value: any): any;
getMapping(context: ReadContext, document: any): ClassMapping;
private _getMappingForDocument(document);
protected readClass(context: ReadContext, value: any): any;
write(context: WriteContext, value: any): any;
protected writeClass(context: WriteContext, value: any, mappedConstructor: boolean): any;
areEqual(documentValue1: any, documentValue2: any): boolean;
private _areEqual(documentValue1, documentValue2);
walk(session: InternalSession, value: any, flags: MappingModel.PropertyFlags, entities: any[], embedded: any[], references: Reference[]): void;
private _walk(session, value, flags, entities, embedded, references);
fetch(session: InternalSession, parentEntity: any, value: any, path: string[], depth: number, callback: ResultCallback<any>): void;
private _fetch(session, parentEntity, value, path, depth, callback);
}