inceptum
Version:
hipages take on the foundational library for enterprise-grade apps written in NodeJS
23 lines (22 loc) • 870 B
TypeScript
import { Context } from '../Context';
import { Logger } from '../../log/LogManager';
import { Lifecycle } from './../Lifecycle';
export declare abstract class ObjectDefinition<T> extends Lifecycle {
context: Context;
autowireCandidate: boolean;
instance: T;
lazyLoading: boolean;
clazz: Function;
constructor(clazz: Function, name: string, logger: Logger);
withLazyLoading(lazyLoading: boolean): ObjectDefinition<T>;
setAutowireCandidate(autowireCandidate: boolean): ObjectDefinition<T>;
setContext(context: Context): void;
getContext(): Context;
abstract getInstance(): Promise<T>;
getProducedClass(): any;
isLazy(): boolean;
isAutowireCandidate(): boolean;
copy(): ObjectDefinition<T>;
protected copyInternalProperties(copyTo: any): void;
protected abstract getCopyInstance(): ObjectDefinition<T>;
}