Краткое описание пакета ianytitle
=================================

Пакет разработан для подержки интерфейса IAnyTitle, который
позволяет найти имя для текущего объекта неким эвристическим
способом.

Способ реализации
-----------------
Продукт определяет интерфейс IAnyTitle и адаптер к нему, адаптер
скрывает в себе эвристический алгоритм подбора заголовка.

Идея эвристического алгоритма: пытаемся привести продукт к 
разным интерфейсам, как только получаем интерфейс с непустым
заголовком (или другими атрибутами, позволяющими получить
непустой заголовок), процесс останавливается. Вариант реализации
такого адаптера можно посмотреть в 
[name:HOWTO use recursive programming using adapters.txt:статье],
он работает, но повторять его не надо, так как есть другое, более
интересное решение, основанное на [keyword:subscriber:подписных адаптерах],
про которые можно прочитать в [name:API работы с реестрами.txt].

Предложение такое: IAnyTitle адаптирует IContained интерфейс и,
следовательно, всегда может предложить IContained(context).__name__
в качестве идентификатора. Но это используется только как последний
возможный вариант. В качестве других вариантов вызываются по очереди
все [keyword:subscriber:подписные адаптеры] контекста к интерфейсу - опять-таки -
IAnyTitle, для каждого из них выбирается атрибут title и первый же
непустой возвращается. На атрибут shorttitle пока забиваем :).
Ну и title должен быть реализован как то так::


    @property
    def title(self) :
        и т.п.
        
Об этом можно прочитать в "[name:HOWTO use decorators in Zope.txt:Использование декораторов в Python]".

Интерфейсы
----------

    IAnyTitle 
        Интерфейс заголовка, предоставляет два атрибута:
        
        title -- заголовок,
        
        shorttitle -- краткий заголовок.


Виды
----

Продукт не предоставляет видов        
                                                            

