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/GenericTask.py

46 lines
1.6 KiB
Python

from DataVaultGenerator.Components import ErrorCollection, GeneratorEntity, DBEntity
class GenericTask(GeneratorEntity):
def __init__(self, model, filename, definition: dict = None):
GeneratorEntity.__init__(self, model, filename, definition)
self._layername = definition.get('layer', self.model.config.entitydefaults[self.type]['layer'])
@property
def layer(self):
"""Returns the entity layer."""
return self.model.get_layer(self._layername)
def validate(self):
errors = ErrorCollection()
# Validating entity references:
for e in self._definition.get('sources'):
if self.model.get_entity(e) is None:
errors.add("VALIDATION ERROR",
(self.filename, "Generic Task", "<" + self.name + ">"),
f'source <{e}> not found')
for e in self._definition.get('targets'):
if self.model.get_entity(e) is None:
errors.add("VALIDATION ERROR",
(self.filename, "Generic Task", "<" + self.name + ">"),
f'target <{e}> not found')
return errors
def get_source_entities(self):
"""returns a list of linked entities."""
return [self.model.get_entity(e) for e in self._definition['sources']]
def get_target_entities(self):
"""returns a list of linked entities."""
return [self.model.get_entity(e) for e in self._definition['targets']]
def get_component_entities(self):
return [{'entity': self, 'component': c, 'type': c.type} for c in self.get_source_entities()]