from DataVaultGenerator.Components import DataVaultEntity, ErrorCollection, MappingSource class Composite(DataVaultEntity, MappingSource): def __init__(self, model, filename, definition: dict = None): DataVaultEntity.__init__(self, model, filename, definition) MappingSource.__init__(self, model, self) @property def query(self): return self.model.get_parsed_query(self, self.rawquery) def get_query_entities(self): return self.model.get_query_entities(self.rawquery) @property def rawquery(self): return self._definition.get('query', '') def get_component_entities(self): return [{'entity': self, 'component': c, 'type': c.type} for c in self.get_query_entities().values()] def validate(self): errors = ErrorCollection() for attr in self.attributes.values(): spec = self.layer.sys_specification errors.append(attr.validate(spec)) return errors