def buildComponent(self): '''build component class objects''' #log.debug("%s Building Component: %s %s" % (8*'#', self.d.component,8*'#')) construct = Prototype(self.zenpackroot, self.zenpackbase, self.indent) construct.addComponent(self.d.component, self.singular, self.plural, self.manual, self.compdata) construct.relmgr = self.d.relmgr construct.relmgr.createFromRelations() for p in self.d.parentClasses: construct.classdata['parents'].append(p) construct.classdata['_properties'] += p._properties construct.classdata['class'].update({'nameKey': self.d.componentData['displayed'], 'primaryKey' : self.d.componentData['primaryKey'], 'portal_type' : self.d.component, 'meta_type' : self.d.component, }) construct.getHelper() # add any custom methods for m in self.d.componentMethods: setattr(construct.helper.classobject, m.__name__, m) for k,v in self.d.componentAttributes.items(): setattr(construct.helper.classobject, k, v) # backwards compatibility self.setBackwardsCompatVars(construct) if self.packs[self.zenpackname]['zenpack'] is None: self.packs[self.zenpackname]['zenpack'] = construct self.packs[self.zenpackname]['constructs'][self.definition]['component'] = construct self.packs[self.zenpackname]['builder'].helpers[self.d.component]['component'] = construct self.updateZenPackClasses(construct)