def _createBlockAndEventKinds(self, cardinality): kind = self._find('//Schema/Core/Kind') itemKind = self._find('//Schema/Core/Item') attrKind = itemKind.itsParent['Attribute'] # blockKind has a 'blocks' reference collection, and an inverse 'blockParent' blockKind = kind.newItem('Block', self.rep) blocksAttribute = Attribute('blocks', blockKind, attrKind) blocksAttribute.cardinality = cardinality blocksAttribute.copyPolicy = currentPolicy blocksAttribute.otherName = 'blockParent' blockKind.addValue('attributes', blocksAttribute, alias='blocks') blockParentAttribute = Attribute('blockParent', blockKind, attrKind) blockParentAttribute.cardinality = 'single' blockParentAttribute.otherName = 'blocks' blockParentAttribute.copyPolicy = currentPolicy blockKind.addValue('attributes', blockParentAttribute, alias='blockParent') # also has an "event" reference that has no inverse eventAttribute = Attribute('event', blockKind, attrKind) eventAttribute.cardinality = 'single' eventAttribute.copyPolicy = currentPolicy blockKind.addValue('attributes', eventAttribute, alias='event') # create the event kind, which has a pointer to a Block. eventKind = kind.newItem('Event', self.rep) notifyBlock = Attribute('notify', eventKind, attrKind) notifyBlock.cardinality = 'single' notifyBlock.copyPolicy = currentPolicy eventKind.addValue('attributes', notifyBlock, alias='notify') return (blockKind, eventKind)
def setUp(self): super(KindTest, self).setUp() self.kind = self._find("//Schema/Core/Kind") self.itemKind = self._find("//Schema/Core/Item") self.attrKind = self.itemKind.itsParent['Attribute'] self.kind1 = self.kind.newItem('kind1', self.rep) self.kind1.addValue('superKinds', self.itemKind) self.kind1Attr1 = Attribute('k1a1', self.rep, self.attrKind) self.kind1Attr1.cardinality = 'list' self.kind1Attr1.otherName = 'owner' self.kind1.addValue('attributes', self.kind1Attr1, alias='k1a1') kind1Attr1Bad = Attribute('k1a1bad', self.kind1, self.attrKind) kind1Attr1Bad.cardinality = 'list' kind1Attr1Bad.otherName = 'owner' try: self.kind1.addValue('attribute', kind1Attr1Bad, alias='k1a1bad') except AttributeError: pass self.kind2 = self.kind.newItem('kind2', self.kind1) self.kind2.addValue('superKinds', self.itemKind) self.kind2.addValue('attributes', self.kind1Attr1, alias='k1a1') self.kind2Attr2 = Attribute('k2a2', self.rep, self.attrKind) self.kind2Attr2.cardinality = 'list' self.kind2.addValue('attributes', self.kind2Attr2, alias='k2a2')
def _createManagerAndEmployeeKinds(self, type): kind = self._find('//Schema/Core/Kind') itemKind = self._find('//Schema/Core/Item') attrKind = itemKind.itsParent['Attribute'] managerKind = kind.newItem('manager', self.rep) employeesAttribute = Attribute('employees',managerKind, attrKind) employeesAttribute.cardinality = type employeesAttribute.otherName = 'manager' managerKind.addValue('attributes', employeesAttribute,alias='employees') employeeKind = kind.newItem('employee', self.rep) managerAttribute = Attribute('manager',employeeKind, attrKind) managerAttribute.otherName = 'employees' employeeKind.addValue('attributes', managerAttribute,alias='manager') return (managerKind, employeeKind)
def _createManagerAndEmployeeKinds(self, type): kind = self._find('//Schema/Core/Kind') itemKind = self._find('//Schema/Core/Item') attrKind = itemKind.itsParent['Attribute'] managerKind = kind.newItem('manager', self.rep) employeesAttribute = Attribute('employees', managerKind, attrKind) employeesAttribute.cardinality = type employeesAttribute.otherName = 'manager' managerKind.addValue('attributes', employeesAttribute, alias='employees') employeeKind = kind.newItem('employee', self.rep) managerAttribute = Attribute('manager', employeeKind, attrKind) managerAttribute.otherName = 'employees' employeeKind.addValue('attributes', managerAttribute, alias='manager') return (managerKind, employeeKind)
def _createBlockAndEventKinds(self, cardinality): kind = self._find('//Schema/Core/Kind') itemKind = self._find('//Schema/Core/Item') attrKind = itemKind.itsParent['Attribute'] # blockKind has a 'blocks' reference collection, and an inverse 'blockParent' blockKind = kind.newItem('Block', self.rep) blocksAttribute = Attribute('blocks', blockKind, attrKind) blocksAttribute.cardinality = cardinality blocksAttribute.copyPolicy = currentPolicy blocksAttribute.otherName = 'blockParent' blockKind.addValue('attributes', blocksAttribute, alias='blocks') blockParentAttribute = Attribute('blockParent', blockKind, attrKind) blockParentAttribute.cardinality = 'single' blockParentAttribute.otherName = 'blocks' blockParentAttribute.copyPolicy = currentPolicy blockKind.addValue('attributes', blockParentAttribute, alias='blockParent') # also has an "event" reference that has no inverse eventAttribute = Attribute('event', blockKind, attrKind) eventAttribute.cardinality = 'single' eventAttribute.copyPolicy = currentPolicy blockKind.addValue('attributes', eventAttribute, alias='event') # create the event kind, which has a pointer to a Block. eventKind = kind.newItem('Event', self.rep) notifyBlock = Attribute('notify', eventKind, attrKind) notifyBlock.cardinality = 'single' notifyBlock.copyPolicy = currentPolicy eventKind.addValue('attributes', notifyBlock, alias='notify') return (blockKind, eventKind)