33 |
33 |
34 from cubicweb import CW_SOFTWARE_ROOT, set_log_methods |
34 from cubicweb import CW_SOFTWARE_ROOT, set_log_methods |
35 from cubicweb import RegistryNotFound, ObjectNotFound, NoSelectableObject |
35 from cubicweb import RegistryNotFound, ObjectNotFound, NoSelectableObject |
36 |
36 |
37 |
37 |
38 class vobject_helper(object): |
38 |
39 """object instantiated at registration time to help a wrapped |
39 class registerer(object): |
40 VObject subclass |
40 """do whatever is needed at registration time for the wrapped |
|
41 class, according to current application schema and already |
|
42 registered objects of the same kind (i.e. same registry name and |
|
43 same id). |
|
44 |
|
45 The wrapped class may be skipped, some previously selected object |
|
46 may be kicked out... After whatever works needed, if the object or |
|
47 a transformed object is returned, it will be added to previously |
|
48 registered objects. |
41 """ |
49 """ |
42 |
50 |
43 def __init__(self, registry, vobject): |
51 def __init__(self, registry, vobject): |
44 self.registry = registry |
52 self.registry = registry |
45 self.vobject = vobject |
53 self.vobject = vobject |
46 self.config = registry.config |
54 self.config = registry.config |
47 self.schema = registry.schema |
55 self.schema = registry.schema |
48 |
|
49 |
|
50 class registerer(vobject_helper): |
|
51 """do whatever is needed at registration time for the wrapped |
|
52 class, according to current application schema and already |
|
53 registered objects of the same kind (i.e. same registry name and |
|
54 same id). |
|
55 |
|
56 The wrapped class may be skipped, some previously selected object |
|
57 may be kicked out... After whatever works needed, if the object or |
|
58 a transformed object is returned, it will be added to previously |
|
59 registered objects. |
|
60 """ |
|
61 |
|
62 def __init__(self, registry, vobject): |
|
63 super(registerer, self).__init__(registry, vobject) |
|
64 self.kicked = set() |
56 self.kicked = set() |
65 |
57 |
66 def do_it_yourself(self, registered): |
58 def do_it_yourself(self, registered): |
67 raise NotImplementedError(str(self.vobject)) |
59 raise NotImplementedError(str(self.vobject)) |
68 |
60 |