from DataVaultGenerator.Components import DataVaultEntity, DynamicProperties, ErrorCollection class Interface(DataVaultEntity): def __init__(self, model, filename, definition: dict = None): DataVaultEntity.__init__(self, model, filename, definition) self.properties = definition.get('properties', {}) self.prop = DynamicProperties.from_kwargs(**definition.get('properties', {})) @property def source_type(self): return self._definition.get('sourcetype') @property def source_system(self): return self.model.get_source_system(self._definition.get('sourcesystem')) def get_component_entities(self): return [{'entity': self, 'component': self.source_system, 'type': self.source_system.type}] def validate(self): errors = ErrorCollection() # Validating sourcesystem: sourcesystem = self._definition.get('sourcesystem') if self.model.get_source_system(sourcesystem) is None: errors.add("VALIDATION ERROR", (self.filename, "Interface", "<" + self.name + ">"), f'Sourcesystem <{sourcesystem}> not found') for attr in self.attributes.values(): spec = self.source_system.sys_specification errors.append(attr.validate(spec)) return errors