Для создания объектов по конфигурации rt используется объект jandcode.app.ObjectFactory.
Экземпляр фабрики объектов доступен через App.getObjectFactory().
Некоторые объекты и сервисы, которые предоставляют собственный контекст
объектам (например Model), имеют собственный экземпляр фабрики и объекты
нужно создавать через нее, для обеспечения правильного контекста.
В объекте rt ищется атрибут class, в котором указан класс, экземпляр которого
нужно создать.
Объект инициализируется контекстом, в котором он создан.
Затем, если объект реализует интерфейс jandcode.utils.rt.IRtLinkSet, то ему
вызывается метод setRt(rt). Объект сам инициализирует себя по переданой rt.
Пример. Допустим имеется такая конфигурация:
<root>
<simpleobject>
<object1 class="mypak.Object1">
</object1>
</simpleobject>
</root>
Создание объекта:
Rt conf = getApp().getRt().getChild("simpleobject/object1");
mypak.Object1 inst = (mypak.Object1) getApp().getObjectFactory().create(conf);
В этом случае процесс инициализации будет выглядеть так:
- создается экземпляр объекта
mypak.Object1- объекту устанвливается контекст создания
- если он реализует интерфейс
jandcode.utils.rt.IRtLinkSet, то у него вызывается методsetRt, в качестве параметра передаетсяconf