package envoy.client.data; import static java.util.function.Function.identity; import java.io.File; import envoy.data.Config; /** * Implements a configuration specific to the Envoy Client with default values * and convenience methods. *

* Project: envoy-client
* File: ClientConfig.java
* Created: 01.03.2020
* * @author Kai S. K. Engelbart * @since Envoy Client v0.1-beta */ public final class ClientConfig extends Config { private static ClientConfig config; /** * @return the singleton instance of the client config * @since Envoy Client v0.1-beta */ public static ClientConfig getInstance() { if (config == null) config = new ClientConfig(); return config; } private ClientConfig() { super(".envoy"); put("server", "s", identity()); put("port", "p", Integer::parseInt); put("localDB", "db", File::new); } /** * @return the host name of the Envoy server * @since Envoy Client v0.1-alpha */ public String getServer() { return (String) items.get("server").get(); } /** * @return the port at which the Envoy server is located on the host * @since Envoy Client v0.1-alpha */ public Integer getPort() { return (Integer) items.get("port").get(); } /** * @return the local database specific to the client user * @since Envoy Client v0.1-alpha */ public File getLocalDB() { return (File) items.get("localDB").get(); } }