cubicweb/entity.py
changeset 12880 59d4ad7e7df3
parent 12567 26744ad37953
child 12882 3ddd03309315
equal deleted inserted replaced
12879:7347715bf0ee 12880:59d4ad7e7df3
  1312         return eobj.related(self._rtype, self._role, entities=True)
  1312         return eobj.related(self._rtype, self._role, entities=True)
  1313 
  1313 
  1314     def __set__(self, eobj, value):
  1314     def __set__(self, eobj, value):
  1315         raise NotImplementedError
  1315         raise NotImplementedError
  1316 
  1316 
       
  1317 # entity adapters #############################################################
       
  1318 
       
  1319 class Adapter(AppObject):
       
  1320     """base class for adapters"""
       
  1321     __registry__ = 'adapters'
       
  1322 
       
  1323 
       
  1324 class EntityAdapter(Adapter):
       
  1325     """base class for entity adapters (eg adapt an entity to an interface)
       
  1326 
       
  1327     An example would be:
       
  1328 
       
  1329     >>> some_entity.cw_adapt_to('IDownloadable')
       
  1330     """
       
  1331     def __init__(self, _cw, **kwargs):
       
  1332         try:
       
  1333             self.entity = kwargs.pop('entity')
       
  1334         except KeyError:
       
  1335             self.entity = kwargs['rset'].get_entity(kwargs.get('row') or 0,
       
  1336                                                     kwargs.get('col') or 0)
       
  1337         Adapter.__init__(self, _cw, **kwargs)
       
  1338 
  1317 
  1339 
  1318 from logging import getLogger
  1340 from logging import getLogger
  1319 from cubicweb import set_log_methods
  1341 from cubicweb import set_log_methods
  1320 set_log_methods(Entity, getLogger('cubicweb.entity'))
  1342 set_log_methods(Entity, getLogger('cubicweb.entity'))