41 lines
1.3 KiB
Python
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
|