UNPKG

pip-services3-commons-node

Version:
69 lines (62 loc) 1.78 kB
/** @module refer */ import { Descriptor } from './Descriptor'; /** * Contains a reference to a component and locator to find it. * It is used by [[References]] to store registered component references. */ export class Reference { private _locator: any; private _component: any; /** * Create a new instance of the reference object and assigns its values. * * @param locator a locator to find the reference. * @param reference a reference to component. */ public constructor(locator: any, component: any) { if (component == null) throw new Error("Component cannot be null"); this._locator = locator; this._component = component; } /** * Matches locator to this reference locator. * * Descriptors are matched using equal method. * All other locator types are matched using direct comparison. * * @param locator the locator to match. * @return true if locators are matching and false it they don't. * * @see [[Descriptor]] */ public match(locator: any): boolean { // Locate by direct reference matching if (this._component == locator) return true; // Locate by direct locator matching else if (this._locator instanceof Descriptor) return (<Descriptor>this._locator).equals(locator); // Locate by direct locator matching else if (this._locator != null) return this._locator == locator; else return false; } /** * Gets the stored component reference. * * @return the component's references. */ public getComponent(): any { return this._component; } /** * Gets the stored component locator. * * @return the component's locator. */ public getLocator(): any { return this._locator; } }