2018-09-25 12:14:18 +00:00
|
|
|
|
/**
|
2018-09-26 15:13:03 +00:00
|
|
|
|
* ### Менеджер деревьев.
|
2018-09-25 16:04:11 +00:00
|
|
|
|
*
|
2018-09-24 16:03:29 +00:00
|
|
|
|
* Представляет собой интерфейс для доступа ко всем деревьям
|
2018-09-25 16:04:11 +00:00
|
|
|
|
*
|
2018-09-24 16:03:29 +00:00
|
|
|
|
* Позволяет по тегу дерева получить на него ссылку.
|
2018-09-25 16:04:11 +00:00
|
|
|
|
*
|
|
|
|
|
* Деревья представляют собой следующую иерархию наследования
|
|
|
|
|
*
|
2019-03-18 13:14:33 +00:00
|
|
|
|
* ```bash
|
|
|
|
|
* // доступ
|
|
|
|
|
* ps.pl.tm
|
|
|
|
|
* ```
|
|
|
|
|
*
|
2018-09-25 16:04:11 +00:00
|
|
|
|
* <br>
|
|
|
|
|
*
|
2018-10-01 07:40:56 +00:00
|
|
|
|
* {@link Trees.GlobalTree GlobalTree} - любое дерево (обладает возможностью открывать свою иерархию)
|
|
|
|
|
* > {@link Trees.SchemeTree SchemeTree} - дерево топологии "st"
|
2018-09-25 16:04:11 +00:00
|
|
|
|
*
|
2018-10-01 07:40:56 +00:00
|
|
|
|
* > {@link Trees.GlobalAttributeTree GlobalAttributeTree} - любое дерево, которое обладает атрибутами (используется как дефолтное)
|
|
|
|
|
* > > {@link Trees.DesktopTree DesktopTree} - дерево рабочего стола "dsk"
|
2018-09-25 16:04:11 +00:00
|
|
|
|
*
|
2018-10-01 07:40:56 +00:00
|
|
|
|
* > > {@link Trees.UserAttributeTree UserAttributeTree} - дерево пользовательских параметров "uat"
|
2018-09-25 16:04:11 +00:00
|
|
|
|
*
|
2018-10-01 07:40:56 +00:00
|
|
|
|
* > > {@link Trees.RemoteModulesTree RemoteModulesTree} - дерево сборщиков данных "rmt"
|
2018-09-25 16:04:11 +00:00
|
|
|
|
*
|
2018-12-13 11:13:55 +00:00
|
|
|
|
* > > {@link Trees.FiltersTree FiltersTree} - дерево фильтров "flt"
|
|
|
|
|
*
|
2019-03-29 11:52:33 +00:00
|
|
|
|
* > > {@link Trees.ConsistencyTree ConsistencyTree} - дерево модельного каталога "cst"
|
|
|
|
|
*
|
2018-12-13 11:13:55 +00:00
|
|
|
|
*
|
2018-09-25 16:04:11 +00:00
|
|
|
|
*
|
|
|
|
|
* <br>
|
|
|
|
|
* Список доступных тегов деревьев:
|
|
|
|
|
* - "cmp" - Компоненты
|
|
|
|
|
* - "cst" - Вложенность компонентов
|
|
|
|
|
* - "dsk" - Рабочий стол
|
|
|
|
|
* - "ect" - Дерево событий
|
|
|
|
|
* - "flt" - Фильтры
|
|
|
|
|
* - "edg" - Линки
|
|
|
|
|
* - "cedg" - Вложенность линков
|
|
|
|
|
* - "prf" - Профили
|
|
|
|
|
* - "rmt" - Сборщики данных
|
|
|
|
|
* - "st" - Схема объектов
|
|
|
|
|
* - "uat" - Пользовательские данные
|
2018-12-13 11:13:55 +00:00
|
|
|
|
* - "dptt" - ???
|
|
|
|
|
* - "ecst" - ???
|
|
|
|
|
* - "gat" - Глобальное дерево с атрибутами
|
|
|
|
|
* - "gt" - Глобальное дерево
|
|
|
|
|
* - "rlt" - ???
|
|
|
|
|
* - "role" - ???
|
2018-09-25 16:04:11 +00:00
|
|
|
|
*
|
|
|
|
|
* <br>
|
|
|
|
|
* Связанные объекты:
|
|
|
|
|
*
|
2018-10-01 07:40:56 +00:00
|
|
|
|
* - {@link Trees.GlobalTree GlobalTree} - Здесь можно найти примеры, как работать с нодами дерева
|
|
|
|
|
* - {@link Trees.GlobalTree.Node GlobalTreeNode} - Здесь можно найти примеры, как работать с содержимым глобальной ноды
|
|
|
|
|
* - {@link Trees.GlobalAttributeTree.Node GlobalAttributesNode} - Здесь можно найти примеры, как работать с содержимым аттрибутной ноды
|
2018-09-25 12:14:18 +00:00
|
|
|
|
*
|
|
|
|
|
* @example
|
|
|
|
|
* // Работа с деревом
|
|
|
|
|
* // Доступ к менеджеру деревьев находится в переменной ps.pl.tm (провайдеры -> мастер платформа -> менеджер деревьев)
|
|
|
|
|
* // доступ к конкретному дереву осуществляется по тагу дерева например ("st", "rmt", "uat")
|
|
|
|
|
* // где st - дерево топологии, rmt - дерево сборщиков данных, uat - дерево в котором хранится информация о
|
|
|
|
|
* // данных пользователя
|
2018-09-25 16:04:11 +00:00
|
|
|
|
* ps.pl.tm.get(new v2.string("rmt")).then(function(ref){
|
2018-09-25 12:14:18 +00:00
|
|
|
|
* // ref - это ссылка на объект
|
2018-10-01 07:40:56 +00:00
|
|
|
|
* // метод value возвращает целевой объект. В данном случае дерево {@link Trees.RemoteModulesTree RemoteModulesTree}
|
2018-09-25 12:14:18 +00:00
|
|
|
|
* var tree = ref.value();
|
|
|
|
|
* }, function(err){
|
|
|
|
|
* // в случае неудачи придет ошибка.
|
|
|
|
|
* // обычно в ошибке содержится три переменные err - код ошибки, message - краткое описание, sub - если к этому
|
|
|
|
|
* // привела другая ошибка внутри системы.
|
|
|
|
|
* })
|
2018-09-18 12:17:34 +00:00
|
|
|
|
*
|
2018-09-24 16:03:29 +00:00
|
|
|
|
* @group manager
|
2018-09-18 12:17:34 +00:00
|
|
|
|
* @namespace Trees
|
|
|
|
|
*/
|
|
|
|
|
function Trees() {
|
|
|
|
|
/**
|
2018-09-25 16:04:11 +00:00
|
|
|
|
* Доступ к дереву
|
|
|
|
|
*
|
|
|
|
|
* В качестве идентификатора следует указать тег дерева.
|
|
|
|
|
*
|
|
|
|
|
* при успехе вернется {@link tools.reference} -> {@link Trees.GlobalTree}
|
|
|
|
|
*
|
|
|
|
|
* при отмене вернется ошибка {@link Errors.PromiseReject}
|
|
|
|
|
*
|
|
|
|
|
* @example
|
|
|
|
|
* // Пример использования:
|
|
|
|
|
* // Результатом будет нативный промис.
|
|
|
|
|
* var promise = ps.pl.tm.get(new v2.string("rmt"));
|
2018-09-18 12:17:34 +00:00
|
|
|
|
*
|
|
|
|
|
* @public
|
|
|
|
|
* @function get
|
|
|
|
|
* @param {v2.string} treeTag Тег дерева. Например: "rmt", "uat"
|
2018-09-25 16:04:11 +00:00
|
|
|
|
* @returns {tools.promise(Trees.GlobalTree)}
|
2018-09-18 12:17:34 +00:00
|
|
|
|
* @memberof Trees
|
|
|
|
|
*/
|
2018-09-25 16:04:11 +00:00
|
|
|
|
|
2018-09-18 12:17:34 +00:00
|
|
|
|
this.get = function (treeTag) {
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
/**
|
|
|
|
|
* Возвращает булевое значение о существовании дерева
|
|
|
|
|
*
|
2018-09-25 16:04:11 +00:00
|
|
|
|
* @example
|
|
|
|
|
* // Пример:
|
|
|
|
|
* var exist = ps.pl.tm.is_exist(new v2.string("rmt"));
|
|
|
|
|
*
|
2018-09-18 12:17:34 +00:00
|
|
|
|
* @public
|
|
|
|
|
* @function is_tree_exist
|
|
|
|
|
* @param {v2.string} treeTag Тег дерева. Например: "rmt", "uat"
|
|
|
|
|
* @returns {boolean}
|
|
|
|
|
* @memberof Trees
|
|
|
|
|
*/
|
|
|
|
|
this.is_tree_exist = function (treeTag) {
|
|
|
|
|
|
|
|
|
|
}
|
2018-09-25 16:04:11 +00:00
|
|
|
|
}
|