This repository has been archived on 2026-03-20. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
datavaultgenerator-1.1.5/DataVaultGenerator/Entities/Composite.py

30 lines
989 B
Python

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