kstrizhov / rdo-xtext

RDO modelling language written in Xtext
0 stars 0 forks source link

Подцепиться к окошку с трассируемыми объектами #13

Closed aurusov closed 9 years ago

aurusov commented 9 years ago

Реализация окошка https://github.com/bogachev-pa/rdo-xtext/issues/18

kstrizhov commented 9 years ago

@bogachev-pa

Возникла проблема определения номер точки дпт по имени ноды дерева Collected Objects. Я так понял, что брать номер надо по имени точки у DBIndexHelper. Но там она хранится по полному имени типа <имя_модели>.<имя _точки>. Следовательно надо брать где-то имя модели, иначе никак номер не вытащить. У DBIndexHelper есть поле modelName. Если дописать геттер и брать его таким образом, это решит проблему (номер точки я взял таким образом уже, но предполагаю, что работать не будет при множестве точек и множестве файлов)? Или это какое-то текущее значение, которое там хранится, потому что индексХелпер у Датабейса один?

ЗЫ. Эти индекс хелперы абстрактиндексы и тд это полная жесть, Пашок) Это все для окошка CollectedObjects? Поясни хотя бы вкратце, для чего это все было нужно, иначе сложно отслеживать связи что куда и где. А то в моем понятии индекс - это номер чего-то, но у каждого индекса есть поле номер и тп

bogachev-pa commented 9 years ago
  1. Если есть объект CollectedDataNode по нужной dtp search, то получить ее имя можно по методу node.getName(), а номер по node.getIndex().getNumber().
  2. Насчет полного имени, в CollectedDataNode есть два метода: getName() и getFullName(), вроде их должно хватать для любого случая.
  3. С множеством точек все ок. С множеством файлов могут быть проблемы, см. https://github.com/k-alexandrovsky/rdo-xtext/issues/33
  4. Индекс здесь это не номер чего-то, а объект, по которой мы индексируем базу данных. Т.е., например, смысл индекса ресурсов в том, чтобы можно было получить все записи базы данных по каждому данному ресурсу. Все индексы реализуют интерфейс AbstractIndex. Соответственно, ты всегда можешь узнать тип индекса и список всех записей в базе данных по данному индексу. Далее различным индексам нужна дополнительная информация, чтобы с ними было удобнее работать и поэтому я определил общий класс Index, реализующий интерфейс AbstractIndex наиболее стандартным способом и много различных классов для каждого типа индекса. В окошке CollectedObjects в каждой вершине хранится объект CollectedDataNode, а в каждой ноде хранится абстрактный индекс.