/
itokar98
/
java-diplom-networkchat
Обзор
Документация
Войти
/
itokar98
/
java-diplom-networkchat
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/main/java/com/organization/config/ServerConfigLoader.java
51 строка
2 KB
Ilya Tokar
First commit
21 дек 2025, 15:29
21 дек 2025, 15:29
3f8814c
Код
Авторство
О чём код?
package com.organization.config; import com.organization.exception.ConfigException; import org.yaml.snakeyaml.Yaml; import java.io.InputStream; import java.io.InputStreamReader; import java.util.Map; public class ServerConfigLoader { private final Yaml yaml = new Yaml(); public ServerConfig loadConfig(String configPath) { try (InputStream inputStream = getResourceAsStream(configPath)) { if (inputStream == null) { throw new ConfigException("Configuration file not found: " + configPath); } Map<String, Object> config = yaml.load(new InputStreamReader(inputStream)); Object portObj = config.get("port"); if (portObj == null) { throw new ConfigException("Port is missing in configuration"); } int port = parsePort(portObj); return new ServerConfig(port); } catch (Exception e) { throw new ConfigException("Error loading configuration: " + e.getMessage(), e); } } private int parsePort(Object portObj) { try { if (portObj instanceof Integer) { return (Integer) portObj; } else if (portObj instanceof String) { return Integer.parseInt((String) portObj); } else { throw new ConfigException("Port must be a number"); } } catch (NumberFormatException e) { throw new ConfigException("Port must be a valid number", e); } } InputStream getResourceAsStream(String name) { return getClass().getClassLoader().getResourceAsStream(name); } }