extensionselector.txt
2008-02-28 09:53factory Фабрика объекта, используется поле choice и словарь утилит IFactory (надо сделать самому, factoryvocabulary); Дополнительный ссылки IExtensionSelectorDescriptor содержит поля factory и iface, реализация которых требует создания словарей. ...
Краткое описание пакета extensionselector
=========================================
Пакет предоставляет специальную утилиту, позволяющую получить фабрику
объекта в зависимости от его расширения. Утилита предоставляет две
функции: получить новое имя и фабрику объекта по его имени и получить
старое имя по имени объекта.
Способ реализации
-----------------
Утилита предоставляет форму для ввода расширений и фабрик
объекта (интерфейс IExtensionSelectorData), а также
интерфейс взаимодействия IExtensionSelector. Через функции
интерфейса взаимодействия можно по любому данному имени получить
новое имя и фабрику объекта или выполнить обратное преобразование -
по объекту и имени получить старое имя объекта.
Интерфейсы
----------
IExtensionSelector
Интерфейс взаимодействия с утилитой, содержит методы:
name2factory() : имя -> (идентификатор, фабрика)
По имени найти дескриптор, по дескриптору получить
идентификатор и фабрику и вернуть их.
ob2name() : объект -> имя
По контент-типу объекта найти дескриптор, по
дескриптору из идентификатора объекта получить
имя и вернуть.
Для обоих методов идентификация и преобразования проводятся при
помощи IExtensionSelectorDescriptor.
IExtensionSelectorData
Содержит один элемент, кортеж дескрипторов (это объект такой IExtensionSelectorDescriptor).
IExtensionSelectorDescriptor
Содержит следующие поля;
regexpsrc
Регулярное выражение для разбора исходного имени;
regexpname
Регулярное выраэение, для разбора имени объекта;
formatname
Форматное выражение, используемое для генерации имени
объекта;
formatsrc
Форматное выражение, используемое для генерации исходного
имени;
factory
Фабрика объекта, используется поле choice и словарь утилит
IFactory (надо сделать самому, factoryvocabulary);
contenttype
Интерфейс контент-класса объекта, используется поле choice и
словарь утилит IContentType (надо сделать самому,
contenttypevocabulary, или можно поискать готовый в
++apidoc++);
Дополнительный ссылки
---------------------
IExtensionSelectorDescriptor содержит поля factory и iface, реализация
которых требует создания словарей. Несколько ссылок, которые
могут помочь это сделать:
Как сделать и использовать словарь
Подробный рассках про то, как делаются словари и как они используются;
Как сделать поле choice
Рассказ про то, как делаются некоторые сложные поля, в частности поле choice;
Как получить списки утилит из реестров
Рассказ про работу с реестрами, дан с некоторым забеганием вперед.
Виды
----
edit
Редактирование IExtensionSelectorData



