Описание mapperobject:

  Автор -- Andrey Orlov
  
  Версия -- $Id: mapperobject.txt 49320 2008-01-09 20:05:51Z cray $

  Аннотация: 
  
    MapperObject - это специальная утилита, которая создается и регистрируется в SiteManager.
    
    Утилита представляет собой папку, которая задает отображения имени интерфейса на
    объект mapperinterface. Имя интерфейса имеет смысл интерфейса, который может
    быть использован для получения интерфейсов по спецификации в mapperinterface.
    
    Утилита называется MapperObject, потому что предоставляет специальную функцию
    lookup(), позволяющую по данному объекту найти все объекты mapperinterface, 
    соответсвующие какому-либо интерфейсу данного объекта.
    
  Виды :
  
    contents -- Стандартный вид со списком вложенных объектов
    
    lookup -- Специальный вид, демонстрирующий работу функции lookup()
    
  Рекомендации к реализации:
   
    Функция lookup возвращает словарь с множественным выбором: каждому
    ключу словаря соответствует список, содержащий один или более
    элементов, соответствующих этому ключу. Пример кода для формирования
    такого словаря::

        interfaces = ??? (ob)
    
        d = {}
        for key, value in self.items()
            if key is in interfaces :
                d.setdefault(key,[]).append(value)
            
        return d
        
    Вид, демонстрирующий работу функции lookup(), может содержать один
    элемент ввода, для ввода имени объекта (или пути к нему), а в качестве
    результата возвращать распечатку вот такого словаря. В стиле Zope3 сделать распечатку словаря
    следующим образом:
    
        1.  Создать специальный класс для этого словаря;
        
        2.  Для этого класса объявить интерфейс;
        
        3.  Для этого интерфейса написать специальный вид;
        
        4.  Назначить этот вид видом по умолчанию.

    В принципе, такая утилита напоминает по своим функциям реестр адаптеров :)
            
    
            
        
                                    
