/** * ### Линк (связь/edge) * Предоставляет данные о линке. * У него можно запросить его атрибутный состав * *
* Связанные объекты: * * - {@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() { }; /** * #### Атрибуты линка * * Данный метод, возвращает все атрибуты, которые есть у линка * *
* _Используется в BLA (js/utils/bridge/link_attributes.js)._ * *
* #### Результат * * **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) { }; }