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/Interface.py
T

41 lines
1.3 KiB
Python

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