Source code for jivago.config.properties.global_config_loader

from typing import List

from jivago.config.properties.application_config_loader import ApplicationConfigLoader
from jivago.config.properties.application_properties import ApplicationProperties
from jivago.config.properties.exception import ConfigurationException
from jivago.lang.annotations import Override
from jivago.lang.stream import Stream


[docs] class GlobalConfigLoader(ApplicationConfigLoader): def __init__(self, application_config_loaders: List[ApplicationConfigLoader]): self.application_config_loaders = application_config_loaders
[docs] @Override def matches(self, filepath: str) -> bool: return Stream(self.application_config_loaders) \ .anyMatch(lambda loader: loader.matches(filepath))
[docs] @Override def read(self, filepath: str) -> ApplicationProperties: return Stream(self.application_config_loaders) \ .firstMatch(lambda loader: loader.matches(filepath)) \ .map(lambda x: x.read(filepath)) \ .orElseThrow(ConfigurationException())