def create(cls, data, session): new_data = cls() new_data.annotation = Annotation.create(data) new_data.disambiguation = Disambiguation.create(data) new_data.identifiers = create_identifiers(data) new_data.aliases, default_alias = create_aliases(data) if default_alias is not None: new_data.default_alias = default_alias return new_data
def update(self, data, session): # Create a new EntityData, copying the current data. new_data = self.copy() if self.annotation is not None: new_data.annotation = self.annotation.update(data) else: new_data.annotation = Annotation.create(data) if self.disambiguation is not None: new_data.disambiguation = self.disambiguation.update(data) else: new_data.disambiguation = Disambiguation.create(data) new_data.identifiers =\ update_identifiers(self.identifiers, data) new_data.aliases, default_alias =\ update_aliases(self.aliases, self.default_alias_id, data) if default_alias is not None: new_data.default_alias = default_alias return new_data