all files / src/data/ data.abstract.js

100% Statements 6/6
100% Branches 4/4
100% Functions 3/3
100% Lines 6/6
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46                                                                               
import { Subject } from 'rxjs/Subject';
 
/**
 * Abstract Data object
 * @abstract
 */
class DataAbstract {
 
    /**
     * Create instance of abstract Data object
     * @constructor
     * @param {DataObserver} dataPool - global instance of DataObserver
     */
    constructor(dataPool) {
        this._dataPool = dataPool;
        this._observableSubject = new Subject();
    }
 
    /**
     * get data observable object
     * @returns {Subject}
     */
    getObservable() {
        return this._observableSubject;
    }
 
    /**
     * handles pushed data from anywhere
     * @param {*} data
     * @returns {DataAbstract}
     */
    push(data) {
        if(
            this._observableSubject &&
            !!data
        ) {
            this._observableSubject.next(data);
        }
        return this;
    }
 
}
 
export {
    DataAbstract,
};