/** * @module refer * * Todo: Rewrite the description. * * @preferred * Provides the inversion of control design pattern but does not contain the fully * functional container (we can just only create a class that will set various references). * * Once the objects of a container are configured, if they implement the [[https://pip-services3-node.github.io/pip-services3-commons-node/interfaces/refer.ireferenceable.html IReferencable interface]], * they are passed a set of references for recreating links between objects in the container. If * objects implement the [[https://pip-services3-node.github.io/pip-services3-commons-node/interfaces/run.iopenable.html IOpenable interface]], * the open() method is called and they * start to work. Connections to various services are made, after which the objects start, the * container starts running, and the objects carry out their tasks. When the container * starts to close, the objects that implement the [[https://pip-services3-node.github.io/pip-services3-commons-node/interfaces/run.iclosable.html ICloseable interface]] * are closed via their * close() method (which should make them stop working and disconnect from other services), * after which objects that implement the [[https://pip-services3-node.github.io/pip-services3-commons-node/interfaces/refer.iunreferenceable.html IUnreferencable interface]] * delete various links between objects, and, finally, the contains destroys all objects and turns off. * * [[BuildReferencesDecorator Build]], [[LinkReferencesDecorator Link]], and * [[RunReferencesDecorator Run]] - ReferenceDecorators are used during the corresponding * building, linking, and running stages and are united in [[ManagedReferences]], which * are extended by [[ContainerReferences]]. */ export { ContainerReferences } from './ContainerReferences'; export { ReferencesDecorator } from './ReferencesDecorator'; export { BuildReferencesDecorator } from './BuildReferencesDecorator'; export { LinkReferencesDecorator } from './LinkReferencesDecorator'; export { RunReferencesDecorator } from './RunReferencesDecorator'; export { ManagedReferences } from './ManagedReferences';