1 | /** @module refer */
|
2 | import { 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 | */
|
26 | export 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 | }
|