UNPKG

1.04 kBTypeScriptView Raw
1/** @module refer */
2import { IReferences } from './IReferences';
3/**
4 * Interface for components that depends on other components.
5 *
6 * If component requires explicit notification to unset references
7 * it shall additionally implement [[IUnreferenceable]] interface.
8 *
9 * @see [[IReferences]]
10 * @see [[IUnreferenceable]]
11 * @see [[Referencer]]
12 *
13 * ### Example ###
14 *
15 * export class MyController implements IReferenceable {
16 * public _persistence: IMyPersistence;
17 * ...
18 * public setReferences(references: IReferences): void {
19 * this._persistence = references.getOneRequired<IMyPersistence>(
20 * new Descriptor("mygroup", "persistence", "*", "*", "1.0")
21 * );
22 * }
23 * ...
24 * }
25 */
26export interface IReferenceable {
27 /**
28 * Sets references to dependent components.
29 *
30 * @param references references to locate the component dependencies.
31 * @see [[IReferences]]
32 */
33 setReferences(references: IReferences): void;
34}