jalhyd
Version:
JaLHyd, a Javascript Library for Hydraulics
61 lines • 1.46 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.asObservable = exports.isObservable = exports.Observable = void 0;
class Observable {
constructor() {
this._observers = [];
}
/**
* ajoute un observateur à la liste
*/
addObserver(o) {
if (this._observers.indexOf(o) === -1) {
this._observers.push(o);
}
}
/**
* supprime un observateur de la liste
*/
removeObserver(o) {
this._observers = this._observers.filter((a) => a !== o);
}
/**
* notifie un événement aux observateurs
*/
notifyObservers(data, sender) {
if (sender === undefined) {
sender = this;
}
for (const o of this._observers) {
o.update(sender, data);
}
}
getObservers() {
return this._observers;
}
}
exports.Observable = Observable;
/**
* @return true si l'objet passé implémente IObservable
* @param o objet à tester
*/
function isObservable(o) {
if (o === undefined) {
return false;
}
const ob = o;
return typeof ob.addObserver === "function";
}
exports.isObservable = isObservable;
/**
* cast d'un objet implémentant IObservable
* @param o objet à convertir
*/
function asObservable(o) {
if (isObservable(o)) {
return o;
}
return undefined;
}
exports.asObservable = asObservable;
//# sourceMappingURL=observer.js.map