IReferences class abstract

Interface for a map that holds component references and passes them to components to establish dependencies with each other.

Together with IReferenceable and IUnreferenceable interfaces it implements a Locator pattern that is used by PipServices toolkit for Inversion of Control to assign external dependencies to components.

The IReferences object is a simple map, where keys are locators and values are component references. It allows to add, remove and find components by their locators. Locators can be any values like integers, strings or component types. But most often PipServices toolkit uses Descriptor as locators that match by 5 fields: group, type, kind, name and version.

See Descriptor See References

Example

class MyController implements IReferenceable {
    IMyPersistence persistence;
    ...
    void setReferences(IReferences references) {
        persistence = references.getOneRequired<IMyPersistence>(
             Descriptor('mygroup', 'persistence', '*', '*', '1.0')
        );
    }
    ...
}

var persistence =  MyMongoDbPersistence();

var controller =  MyController();

var references = References.fromTuples([
     Descriptor('mygroup', 'persistence', 'mongodb', 'default', '1.0'), persistence,
     Descriptor('mygroup', 'controller', 'default', 'default', '1.0'), controller
]);
controller.setReferences(references);
Implementers

Constructors

IReferences()

Properties

hashCode int
The hash code for this object.
no setterinherited
runtimeType Type
A representation of the runtime type of the object.
no setterinherited

Methods

find<T>(dynamic locator, bool required) List<T>
Gets all component references that match specified locator.
getAll() List
Gets all component references registered in this reference map.
getAllLocators() List
Gets locators for all registered component references in this reference map.
getOneOptional<T>(dynamic locator) → T?
Gets an optional component reference that matches specified locator.
getOneRequired<T>(dynamic locator) → T
Gets a required component reference that matches specified locator.
getOptional<T>(dynamic locator) List<T>
Gets all component references that match specified locator.
getRequired<T>(dynamic locator) List<T>
Gets all component references that match specified locator. At least one component reference must be present. If it doesn't the method throws an error.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
put(dynamic locator, dynamic component) → void
Puts a reference into this reference map.
remove(dynamic locator) → dynamic
Removes a previously added reference that matches specified locator. If many references match the locator, it removes only the first one. When all references shall be removed, use removeAll method instead.
removeAll(dynamic locator) List
Removes all component references that match the specified locator.
toString() String
A string representation of this object.
inherited

Operators

operator ==(Object other) bool
The equality operator.
inherited