# src/scripts/CDP/UI/listview/StatusManager.js

## Maintainability

74.28

## Lines of code

68

## Difficulty

36.07

## Estimated Errors

0.35

## Function weight

### By Complexity

### By SLOC

var CDP; (function (CDP) { var UI; (function (UI) { var TAG = "[CDP.UI.StatusManager] "; /** * @class StatusManager * @brief UI 用状態管理クラス * StatusManager のインスタンスごとに任意の状態管理ができる * */ var StatusManager = /** @class */ (function () { function StatusManager() { this._status = {}; //!< statusScope() に使用される状態管理オブジェクト } /////////////////////////////////////////////////////////////////////// // Implements: IStatusManager //! 状態変数の参照カウントのインクリメント StatusManager.prototype.statusAddRef = function (status) { if (!this._status[status]) { this._status[status] = 1; } else { this._status[status]++; } return this._status[status]; }; //! 状態変数の参照カウントのデクリメント StatusManager.prototype.statusRelease = function (status) { var retval; if (!this._status[status]) { retval = 0; } else { this._status[status]--; retval = this._status[status]; if (0 === retval) { delete this._status[status]; } } return retval; }; //! 処理スコープ毎に状態変数を設定 StatusManager.prototype.statusScope = function (status, callback) { var _this = this; this.statusAddRef(status); var promise = callback(); if (!promise) { this.statusRelease(status); } else { promise.then(function () { _this.statusRelease(status); }, function () { _this.statusRelease(status); }); } }; //! 指定した状態中であるか確認 StatusManager.prototype.isStatusIn = function (status) { return !!this._status[status]; }; return StatusManager; }()); UI.StatusManager = StatusManager; })(UI = CDP.UI || (CDP.UI = {})); })(CDP || (CDP = {})); //# sourceMappingURL=data:application/json;base64,