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')) |