links manager
This commit is contained in:
parent
2bfec61202
commit
eeb2b01574
@ -39,6 +39,7 @@
|
|||||||
* - - #### {@link ModelTypes}
|
* - - #### {@link ModelTypes}
|
||||||
* - - #### {@link GroupTypes} - Менеджер для доступа к типам компонентов
|
* - - #### {@link GroupTypes} - Менеджер для доступа к типам компонентов
|
||||||
* - - #### {@link LinkTypes} - Менеджер для доступа к типам линков
|
* - - #### {@link LinkTypes} - Менеджер для доступа к типам линков
|
||||||
|
* - - #### {@link Links} - Менеджер для к данным линка
|
||||||
* - - #### {@link EventTypes} - Менеджер для доступа к типам событий
|
* - - #### {@link EventTypes} - Менеджер для доступа к типам событий
|
||||||
* - - #### {@link CoreConfig}
|
* - - #### {@link CoreConfig}
|
||||||
* - - #### {@link CoreErrors} - интерфейс для получения описания ошибок, которые приходят из ядра
|
* - - #### {@link CoreErrors} - интерфейс для получения описания ошибок, которые приходят из ядра
|
||||||
@ -136,6 +137,7 @@
|
|||||||
*
|
*
|
||||||
* - {@link GroupTypes} - Менеджер, который позволяет получить данные по типу компонента, определен как **ps.pl.gtm**
|
* - {@link GroupTypes} - Менеджер, который позволяет получить данные по типу компонента, определен как **ps.pl.gtm**
|
||||||
* - {@link LinkTypes} - Менеджер, который позволяет получить данные по типу линка, определен как **ps.pl.ltm**
|
* - {@link LinkTypes} - Менеджер, который позволяет получить данные по типу линка, определен как **ps.pl.ltm**
|
||||||
|
* - {@link Links} - Менеджер, который позволяет получить данные по идентификатору линка, определен как **ps.pl.links**
|
||||||
* - {@link EventTypes} - Менеджер, который позволяет получить данные по типу события, определен как **ps.pl.etm**
|
* - {@link EventTypes} - Менеджер, который позволяет получить данные по типу события, определен как **ps.pl.etm**
|
||||||
* - {@link ModelTypes} - Менеджер, который позволяет узнать о содержимом модели **ps.pl.mtm**
|
* - {@link ModelTypes} - Менеджер, который позволяет узнать о содержимом модели **ps.pl.mtm**
|
||||||
* - {@link Models} - Менеджер, для доступа к устройствам, определен как **ps.pl.mm**
|
* - {@link Models} - Менеджер, для доступа к устройствам, определен как **ps.pl.mm**
|
||||||
@ -197,6 +199,17 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
*
|
*
|
||||||
|
* <br><br>
|
||||||
|
* ### {@link Links}. Менеджер линков.
|
||||||
|
*
|
||||||
|
* Позволяет получить данные по линку
|
||||||
|
*
|
||||||
|
* Этот механизм используется в виджете для связывания компонентов модели.
|
||||||
|
*
|
||||||
|
* А так же получения атрибутов линка, направленности и других данных
|
||||||
|
*
|
||||||
|
*
|
||||||
|
*
|
||||||
* @name 04
|
* @name 04
|
||||||
* @mainpage
|
* @mainpage
|
||||||
* @memberof mainpage
|
* @memberof mainpage
|
||||||
|
@ -10,6 +10,7 @@
|
|||||||
* Доступные менеджеры у платформы:
|
* Доступные менеджеры у платформы:
|
||||||
* - {@link GroupTypes} - Менеджер, который позволяет получить данные по типу компонента, определен как **gtm**
|
* - {@link GroupTypes} - Менеджер, который позволяет получить данные по типу компонента, определен как **gtm**
|
||||||
* - {@link LinkTypes} - Менеджер, который позволяет получить данные по типу линка, определен как **ltm**
|
* - {@link LinkTypes} - Менеджер, который позволяет получить данные по типу линка, определен как **ltm**
|
||||||
|
* - {@link Links} - Менеджер, который позволяет получить данные по идентификатору линка, определен как **links**
|
||||||
* - {@link EventTypes} - Менеджер, который позволяет получить данные по типу события, определен как **etm**
|
* - {@link EventTypes} - Менеджер, который позволяет получить данные по типу события, определен как **etm**
|
||||||
* - {@link ModelTypes} - Менеджер, который позволяет узнать о содержимом модели **mtm**
|
* - {@link ModelTypes} - Менеджер, который позволяет узнать о содержимом модели **mtm**
|
||||||
* - {@link Models} - Менеджер, для доступа к устройствам, определен как **mm**
|
* - {@link Models} - Менеджер, для доступа к устройствам, определен как **mm**
|
||||||
@ -68,6 +69,15 @@ function Platform() {
|
|||||||
*/
|
*/
|
||||||
this.ltm = new LinkTypes();
|
this.ltm = new LinkTypes();
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* @public
|
||||||
|
* @name links
|
||||||
|
* @type {Links}
|
||||||
|
* @memberof Platform
|
||||||
|
*/
|
||||||
|
this.links = new Links();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @public
|
* @public
|
||||||
|
@ -19,12 +19,14 @@ function CoreErrors() {
|
|||||||
* <br>
|
* <br>
|
||||||
* Пример
|
* Пример
|
||||||
*
|
*
|
||||||
|
*
|
||||||
* ```
|
* ```
|
||||||
* var error_info = ps.pl.core_errors.get_error(101);
|
* var error_info = ps.pl.core_errors.get_error(101);
|
||||||
* // Вывод =>
|
* // Вывод =>
|
||||||
* // {name: "Узел не существует", description: "Узел с требуемым индексом не содержится в дереве п…. Данный код ошибки используется в masterProvider"}
|
* // {name: "Узел не существует", description: "Узел с требуемым индексом не содержится в дереве п…. Данный код ошибки используется в masterProvider"}
|
||||||
*
|
*
|
||||||
* ```
|
* ```
|
||||||
|
*
|
||||||
* @public
|
* @public
|
||||||
* @function get_error
|
* @function get_error
|
||||||
* @memberof CoreErrors
|
* @memberof CoreErrors
|
||||||
|
63
docfiles/providers/managers/links/attributes/attribute.js
Normal file
63
docfiles/providers/managers/links/attributes/attribute.js
Normal file
@ -0,0 +1,63 @@
|
|||||||
|
/**
|
||||||
|
* #### Атрибут линка
|
||||||
|
*
|
||||||
|
* <br>
|
||||||
|
* Связанные объекты:
|
||||||
|
*
|
||||||
|
* - {@link Links} - Менеджер предоставляющий доступ к данным о линках
|
||||||
|
* - {@link Links.Link} - Модель линка
|
||||||
|
* - {@link Links.Link.Attributes} - Менеджер предоставляющий доступ к атрибутам линка
|
||||||
|
*
|
||||||
|
* @group manager
|
||||||
|
* @class Attribute
|
||||||
|
* @memberof Links.Link.Attributes
|
||||||
|
*/
|
||||||
|
function Attribute() {
|
||||||
|
/**
|
||||||
|
* Возвращает имя атрибута
|
||||||
|
*
|
||||||
|
* @public
|
||||||
|
* @function name
|
||||||
|
* @returns {v2.string}
|
||||||
|
* @memberof Links.Link.Attributes.Attribute
|
||||||
|
*/
|
||||||
|
this.name = function() {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Возвращает мета атрибуты атрибута
|
||||||
|
*
|
||||||
|
* @public
|
||||||
|
* @function data
|
||||||
|
* @returns {v2}
|
||||||
|
* @memberof Links.Link.Attributes.Attribute
|
||||||
|
*/
|
||||||
|
this.data = function() {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Возвращает значение атрибута
|
||||||
|
*
|
||||||
|
* @public
|
||||||
|
* @function value
|
||||||
|
* @returns {v2}
|
||||||
|
* @memberof Links.Link.Attributes.Attribute
|
||||||
|
*/
|
||||||
|
this.value = function() {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Возвращает тип атрибута
|
||||||
|
*
|
||||||
|
* @public
|
||||||
|
* @function type
|
||||||
|
* @returns {v2.type}
|
||||||
|
* @memberof Links.Link.Attributes.Attribute
|
||||||
|
*/
|
||||||
|
this.type = function() {
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
46
docfiles/providers/managers/links/attributes/manager.js
Normal file
46
docfiles/providers/managers/links/attributes/manager.js
Normal file
@ -0,0 +1,46 @@
|
|||||||
|
/** @typedef {Links.Link.Attributes} LinkAttributes */
|
||||||
|
/** @typedef {Links.Link.Attributes.Attribute} LinkAttribute */
|
||||||
|
|
||||||
|
/**
|
||||||
|
*
|
||||||
|
* * ### Менеджер атрибутов линка
|
||||||
|
* Предоставляет данные о линке.
|
||||||
|
* У него можно запросить его атрибутный состав
|
||||||
|
*
|
||||||
|
* <br>
|
||||||
|
* Связанные объекты:
|
||||||
|
*
|
||||||
|
* - {@link Links} - Менеджер предоставляющий доступ к данным о линках
|
||||||
|
* - {@link Links.Link} - Модель линка
|
||||||
|
* - {@link Links.Link.Attributes.Attribute} - Модель атрибута линка
|
||||||
|
*
|
||||||
|
* @group manager
|
||||||
|
* @class Attributes
|
||||||
|
* @memberof Links.Link
|
||||||
|
*/
|
||||||
|
function Attributes() {
|
||||||
|
/**
|
||||||
|
* Возвращает список атрибутов линка
|
||||||
|
*
|
||||||
|
* @public
|
||||||
|
* @function attributes
|
||||||
|
* @returns {v2.map(v2.string, v2.vc)}
|
||||||
|
* @memberof Links.Link.Attributes
|
||||||
|
*/
|
||||||
|
this.attributes = function() {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Возвращает ссылку на атрибут линка
|
||||||
|
*
|
||||||
|
* @public
|
||||||
|
* @function get
|
||||||
|
* @param {v2.string} attributeName
|
||||||
|
* @returns {tools.promise}
|
||||||
|
* @memberof Links.Link.Attributes
|
||||||
|
*/
|
||||||
|
this.get = function(attributeName) {
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
112
docfiles/providers/managers/links/link.js
Normal file
112
docfiles/providers/managers/links/link.js
Normal file
@ -0,0 +1,112 @@
|
|||||||
|
/**
|
||||||
|
* ### Линк (связь/edge)
|
||||||
|
* Предоставляет данные о линке.
|
||||||
|
* У него можно запросить его атрибутный состав
|
||||||
|
*
|
||||||
|
* <br>
|
||||||
|
* Связанные объекты:
|
||||||
|
*
|
||||||
|
* - {@link Links} - Менеджер предоставляющий доступ к данным о линках
|
||||||
|
* - {@link Links.Link.Attributes} - Менеджер предоставляющий доступ к атрибутам линка
|
||||||
|
* - {@link Links.Link.Attributes.Attribute} - Модель атрибута линка
|
||||||
|
*
|
||||||
|
* @class Link
|
||||||
|
* @memberof Links
|
||||||
|
*/
|
||||||
|
function Link() {
|
||||||
|
/**
|
||||||
|
* Возвращает уникальный идентификатор линка.
|
||||||
|
*
|
||||||
|
* @public
|
||||||
|
* @function id
|
||||||
|
* @memberof Links.Link
|
||||||
|
* @returns {v2.integer}
|
||||||
|
*/
|
||||||
|
this.id = function() {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Возвращает тип линка.
|
||||||
|
*
|
||||||
|
* @public
|
||||||
|
* @function id
|
||||||
|
* @memberof Links.Link
|
||||||
|
* @returns {v2.model_type}
|
||||||
|
*/
|
||||||
|
this.type = function() {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* #### Атрибуты линка
|
||||||
|
*
|
||||||
|
* Данный метод, возвращает все атрибуты, которые есть у линка
|
||||||
|
*
|
||||||
|
* <br>
|
||||||
|
* _Используется в BLA (js/utils/bridge/link_attributes.js)._
|
||||||
|
*
|
||||||
|
* <br>
|
||||||
|
* #### Результат
|
||||||
|
*
|
||||||
|
* **first** (имя атрибута)
|
||||||
|
*
|
||||||
|
* **second** (структура атрибута: метаданные и значение)
|
||||||
|
*
|
||||||
|
* visible -> {@link v2.boolean Boolean}
|
||||||
|
* editable -> {@link v2.boolean Boolean}
|
||||||
|
* removable -> {@link v2.boolean Boolean}
|
||||||
|
* type -> {@link v2.type Type}
|
||||||
|
* value -> {@link v2 Any}
|
||||||
|
*
|
||||||
|
* #### Важно!
|
||||||
|
*
|
||||||
|
*```
|
||||||
|
* // Пример:
|
||||||
|
*
|
||||||
|
* // Считаем что, линк уже есть на руках.
|
||||||
|
* var link_id = v2.integer.from_string("-7547783344834658422");
|
||||||
|
* var link_ref = null;
|
||||||
|
* var link_model = null;
|
||||||
|
*
|
||||||
|
* ps.pl.links.get(link_id).then(function(ref){
|
||||||
|
* // ref - это ссылка на объект
|
||||||
|
* // метод value возвращает целевой объект. В данном случае дерево {@type Links.Link}
|
||||||
|
* link_model = ref.value();
|
||||||
|
* link_ref = ref;
|
||||||
|
*
|
||||||
|
* return link_model.attributes();
|
||||||
|
* }, function(err){
|
||||||
|
* // в случае неудачи придет ошибка.
|
||||||
|
* // обычно в ошибке содержится три переменные err - код ошибки, message - краткое описание, sub - если к этому
|
||||||
|
* // привела другая ошибка внутри системы.
|
||||||
|
* console.log("Ошибка при запросе модели линка")
|
||||||
|
* }).then(function(_attributes){
|
||||||
|
* console.log(_attributes.print())
|
||||||
|
* }, function(){
|
||||||
|
* console.log("Ошибка при запросе атрибутов")
|
||||||
|
* })
|
||||||
|
*```
|
||||||
|
*
|
||||||
|
* @public
|
||||||
|
* @function attributes
|
||||||
|
* @returns {tools.promise(v2.map(v2.string,v2.vc))}
|
||||||
|
* @memberof Links.Link
|
||||||
|
*/
|
||||||
|
this.attributes = function() {
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Возвращает ссылку на атрибут линка
|
||||||
|
*
|
||||||
|
* @public
|
||||||
|
* @function get
|
||||||
|
* @param {v2.string} name
|
||||||
|
* @returns {tools.promise}
|
||||||
|
* @memberof Links.Link
|
||||||
|
*/
|
||||||
|
this.get = function(name) {
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
56
docfiles/providers/managers/links/manager.js
Normal file
56
docfiles/providers/managers/links/manager.js
Normal file
@ -0,0 +1,56 @@
|
|||||||
|
/**
|
||||||
|
* Менеджер предоставляющий доступ к данным о линках
|
||||||
|
*
|
||||||
|
* <br>
|
||||||
|
* Связанные объекты:
|
||||||
|
*
|
||||||
|
* - {@link Links.Link} - Модель линка (Топологический линк)
|
||||||
|
* - {@link LinkTypes} - Менеджер типов линков (Здесь можно запросить данные по типу линка)
|
||||||
|
* - {@link LinkTypes.LinkType} - Модель типа линка (Здесь можно найти атрибуты линка)
|
||||||
|
*
|
||||||
|
* @group manager
|
||||||
|
* @namespace Links
|
||||||
|
* @extends manager
|
||||||
|
*/
|
||||||
|
function Links() {
|
||||||
|
/**
|
||||||
|
* Интерфейс доступа к линку
|
||||||
|
*
|
||||||
|
* Ответ должен быть обработан в промисе,
|
||||||
|
*
|
||||||
|
* при успехе вернется {@link tools.reference} -> {@link Links.Link}
|
||||||
|
*
|
||||||
|
* при отмене вернется ошибка {@link Errors.PromiseReject}
|
||||||
|
*
|
||||||
|
* ```
|
||||||
|
* // Пример 1: Как получить линк?
|
||||||
|
*
|
||||||
|
* // Пример взят для случайного линка
|
||||||
|
*
|
||||||
|
* // идентификатор линка 64 битный, а нативный number JavaScript'a нет.
|
||||||
|
* // поэтому инт генерим из строки
|
||||||
|
* var link_id = v2.integer.from_string("-7547783344834658422");
|
||||||
|
* var link_ref = null;
|
||||||
|
* var link_model = null;
|
||||||
|
* ps.pl.links.get(link_id).then(function(ref){
|
||||||
|
* // ref - это ссылка на объект
|
||||||
|
* // метод value возвращает целевой объект. В данном случае дерево {@type Links.Link}
|
||||||
|
* link_model = ref.value();
|
||||||
|
* link_ref = ref;
|
||||||
|
* }, function(err){
|
||||||
|
* // в случае неудачи придет ошибка.
|
||||||
|
* // обычно в ошибке содержится три переменные err - код ошибки, message - краткое описание, sub - если к этому
|
||||||
|
* // привела другая ошибка внутри системы.
|
||||||
|
* })
|
||||||
|
* ```
|
||||||
|
*
|
||||||
|
* @public
|
||||||
|
* @function get
|
||||||
|
* @param {v2.integer} linkId Идентификатор ноды в дереве
|
||||||
|
* @returns {tools.promise}
|
||||||
|
* @memberof Links
|
||||||
|
*/
|
||||||
|
this.get = function(linkId) {
|
||||||
|
|
||||||
|
};
|
||||||
|
}
|
Loading…
x
Reference in New Issue
Block a user