equal
deleted
inserted
replaced
3 |
3 |
4 A registerer is responsible to tell if an object should be registered according |
4 A registerer is responsible to tell if an object should be registered according |
5 to the application's schema or to already registered object |
5 to the application's schema or to already registered object |
6 |
6 |
7 :organization: Logilab |
7 :organization: Logilab |
8 :copyright: 2006-2008 LOGILAB S.A. (Paris, FRANCE), all rights reserved. |
8 :copyright: 2006-2009 LOGILAB S.A. (Paris, FRANCE), all rights reserved. |
9 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr |
9 :contact: http://www.logilab.fr/ -- mailto:contact@logilab.fr |
10 """ |
10 """ |
11 __docformat__ = "restructuredtext en" |
11 __docformat__ = "restructuredtext en" |
12 |
12 |
13 from cubicweb.vregistry import registerer |
13 from cubicweb.vregistry import registerer |
82 def do_it_yourself(self, registered): |
82 def do_it_yourself(self, registered): |
83 # if object is accepting interface, we have register it now and |
83 # if object is accepting interface, we have register it now and |
84 # remove it latter if no object is implementing accepted interfaces |
84 # remove it latter if no object is implementing accepted interfaces |
85 if _accepts_interfaces(self.vobject): |
85 if _accepts_interfaces(self.vobject): |
86 return self.vobject |
86 return self.vobject |
87 if not 'Any' in self.vobject.accepts: |
87 # XXX no more .accepts attribute |
88 for ertype in self.vobject.accepts: |
88 # if not 'Any' in self.vobject.accepts: |
89 if ertype in self.schema: |
89 # for ertype in self.vobject.accepts: |
90 break |
90 # if ertype in self.schema: |
91 else: |
91 # break |
92 self.skip() |
92 # else: |
93 return None |
93 # self.skip() |
|
94 # return None |
94 for required in getattr(self.vobject, 'requires', ()): |
95 for required in getattr(self.vobject, 'requires', ()): |
95 if required not in self.schema: |
96 if required not in self.schema: |
96 self.skip() |
97 self.skip() |
97 return |
98 return |
98 self.remove_equivalents(registered) |
99 self.remove_equivalents(registered) |