Options
All
  • Public
  • Public/Protected
  • All
Menu

Interface IReferences

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

export class MyController implements IReferenceable {
    public _persistence: IMyPersistence;
    ...
    public setReferences(references: IReferences): void {
        this._persistence = references.getOneRequired<IMyPersistence>(
            new Descriptor("mygroup", "persistence", "*", "*", "1.0")
        );
    }
    ...
}

let persistence = new MyMongoDbPersistence();

let controller = new MyController();

let references = References.fromTuples(
    new Descriptor("mygroup", "persistence", "mongodb", "default", "1.0"), persistence,
    new Descriptor("mygroup", "controller", "default", "default", "1.0"), controller
);
controller.setReferences(references);

Hierarchy

  • IReferences

Implemented by

Index

Methods

find

  • find<T>(locator: any, required: boolean): T[]
  • Gets all component references that match specified locator.

    throws

    a ReferenceException when required is set to true but no references found.

    Type parameters

    • T

    Parameters

    • locator: any

      the locator to find a reference by.

    • required: boolean

      forces to raise an exception if no reference is found.

    Returns T[]

    a list with matching component references.

getAll

  • getAll(): any[]
  • Gets all component references registered in this reference map.

    Returns any[]

    a list with component references.

getAllLocators

  • getAllLocators(): any[]
  • Gets locators for all registered component references in this reference map.

    Returns any[]

    a list with component locators.

getOneOptional

  • getOneOptional<T>(locator: any): T
  • Gets an optional component reference that matches specified locator.

    Type parameters

    • T

    Parameters

    • locator: any

      the locator to find references by.

    Returns T

    a matching component reference or null if nothing was found.

getOneRequired

  • getOneRequired<T>(locator: any): T
  • Gets a required component reference that matches specified locator.

    throws

    a ReferenceException when no references found.

    Type parameters

    • T

    Parameters

    • locator: any

      the locator to find a reference by.

    Returns T

    a matching component reference.

getOptional

  • getOptional<T>(locator: any): T[]
  • Gets all component references that match specified locator.

    Type parameters

    • T

    Parameters

    • locator: any

      the locator to find references by.

    Returns T[]

    a list with matching component references or empty list if nothing was found.

getRequired

  • getRequired<T>(locator: any): 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.

    throws

    a ReferenceException when no references found.

    Type parameters

    • T

    Parameters

    • locator: any

      the locator to find references by.

    Returns T[]

    a list with matching component references.

put

  • put(locator: any, component: any): any
  • Puts a new reference into this reference map.

    Parameters

    • locator: any

      a locator to find the reference by.

    • component: any

      a component reference to be added.

    Returns any

remove

  • remove(locator: any): any
  • 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.

    see

    removeAll

    Parameters

    • locator: any

      a locator to remove reference

    Returns any

    the removed component reference.

removeAll

  • removeAll(locator: any): any[]
  • Removes all component references that match the specified locator.

    Parameters

    • locator: any

      the locator to remove references by.

    Returns any[]

    a list, containing all removed references.

Generated using TypeDoc