| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104 |
- """
- Copyright (c) Contributors to the Open 3D Engine Project.
- For complete copyright and license terms please see the LICENSE at the root of this distribution.
- SPDX-License-Identifier: Apache-2.0 OR MIT
- """
- from __future__ import annotations
- import logging
- from typing import List
- from model import error_messages
- from utils import file_utils
- logger = logging.getLogger(__name__)
- class Configuration(object):
- """
- Data structure to store the global configuration for resource mapping tool
- """
- def __init__(self) -> None:
- self._config_directory: str = ""
- self._config_files: List[str] = []
- self._account_id: str = ""
- self._region: str = ""
-
- def __str__(self) -> str:
- return self._print_format()
-
- def __repr__(self) -> str:
- return self._print_format()
-
- def _print_format(self) -> str:
- return (f"ConfigFileDirectory:{self._config_directory},ConfigFiles:{self._config_files}"
- f"AccountId:{self._account_id},Region:{self._region}")
-
- @property
- def config_directory(self) -> str:
- return self._config_directory
-
- @config_directory.setter
- def config_directory(self, new_config_directory: str) -> None:
- if file_utils.check_path_exists(new_config_directory):
- self._config_directory = new_config_directory
- else:
- raise FileNotFoundError(error_messages.FILE_NOT_FOUND_ERROR_MESSAGE.format(new_config_directory))
- @property
- def config_files(self) -> List[str]:
- return self._config_files
- @config_files.setter
- def config_files(self, new_config_files: List[str]) -> None:
- self._config_files.clear()
- self._config_files.extend(new_config_files)
-
- @property
- def account_id(self) -> str:
- return self._account_id
-
- @account_id.setter
- def account_id(self, new_account_id: str) -> None:
- self._account_id = new_account_id
-
- @property
- def region(self) -> str:
- return self._region
-
- @region.setter
- def region(self, new_region: str) -> None:
- self._region = new_region
- class ConfigurationBuilder(object):
- """
- The ConfigurationBuilder class provides a builder pattern for Configuration
- """
- def __init__(self) -> None:
- self._configuration: Configuration = Configuration()
- def build(self) -> Configuration:
- configuration: Configuration = self._configuration
- self.reset()
- return configuration
- def build_account_id(self, account_id_value: str) -> ConfigurationBuilder:
- self._configuration.account_id = account_id_value
- return self
- def build_config_files(self, config_files_value: List[str]) -> ConfigurationBuilder:
- self._configuration.config_files = config_files_value
- return self
- def build_config_directory(self, config_directory_value: str) -> ConfigurationBuilder:
- self._configuration.config_directory = config_directory_value
- return self
- def build_region(self, region_value: str) -> ConfigurationBuilder:
- self._configuration.region = region_value
- return self
- def reset(self) -> None:
- self._configuration = Configuration()
|