#importing parent from Model import Model #importing objects from PhysicalEntity import PhysicalEntity class PhysicalModel ( Model ) : def CreateEntity(self, name): return PhysicalEntity(name) def HasRelation(self, e1, e2): for i in self.relations: # e2 references e1 if i.entities[0].name == e1.name and i.entities[1].name == e2.name: return 1 # e1 references e2 if i.entities[0].name == e2.name and i.entities[1].name == e1.name: return -1 return None def GetKey(self, e1, e2): # Returns a key sequence, that represents references between to entities. (if any) key = [] key2 = [] counter = 0 counter2 = 0 len = 0 len2 = 0 no_n_m = 0 if e1 == e2: no_n_m = 1 for j in e2.propertylinks: if j.primarykey == 1: counter2 += 1 for i in e1.propertylinks: if i.primarykey == 1: counter += 1 for j in e2.propertylinks: if i.property.name == j.property.name and i.primarykey == 1 and j.primarykey != 1: key.append(i.property) len += 1 if no_n_m == 1: continue if i.property.name == j.property.name and i.primarykey == 1 and j.primarykey == 1: key2.append(i.property) len2 += 1 if key == [] or len != counter: if key2 != [] and len2 < counter2: return key2 else: key = None return key