Краткое описание пакета ng.utility
==================================

Пакет разработан как библиотека небольших утилит, каналов и других
несистематизированных компонент для разных темных целей.

Канал objecteventchannel 
--------------------------

Некоторые сообщения (IIntIdAddedEvent, IIntIdRemovedEvent), 
являясь, по сути, сообщениями жизненного цикла объекта,
не являются такими по оформлению. Не смотря на то, что в сообщении
содержится атрибут, указывающий на объект, сообщение не передается
как пара (Сообщение, Объект), что вынуждает обработчик
обрабатывать все сообщения и проверять наличие у вложенного объекта
интерфейса, который нужно обрабатывать. Такой подход является достаточно
ресурсоемким, так как активирует по каждому событию множество обработчиков,
которые реально ничего не делают.

Канал **objecteventchannel** исправляет ситуацию для указанных собщений, делая
повторную отправку сообщения как пары (Сообщение, Объект) и позволяя
декларировать обработчик для обслуживания сообщений на конкретных 
видах объектов, что намного эффективнее. Практически все продукты,
используемые в [keyword:CMS DreamBot], реализуют обработчики вышеуказанных
событий в расчете на наличие **objecteventchannel**, поэтому его установка
и настройка является обязательной.

Утилита intidsvocabulary
------------------------

Это словарь утилит IIntIds, используется некоторыми интерфейсами,
самостоятельного значения не имеет.

Пакет interfacewave
-------------------
Эта утилита перехватывает событие создания объекта с интерфейсом
**IUseInterfaceWave** и создает в нем все интерфейсы, существующие в его
контейнере и расширяющие интерфейс **IPropagateInterface**.

Таким образом легко создать иерархию объектов, развернутых под данным
объектом и имеющих одни и те же динамические интерфейсы.
