101 lines
3.3 KiB
Java
101 lines
3.3 KiB
Java
package envoy.server.data;
|
|
|
|
import static java.util.function.Function.identity;
|
|
|
|
import envoy.data.Config;
|
|
|
|
/**
|
|
* @author Leon Hofmeister
|
|
* @since Envoy Server v0.2-beta
|
|
*/
|
|
public final class ServerConfig extends Config {
|
|
|
|
private static ServerConfig config;
|
|
|
|
/**
|
|
* @return the singleton instance of the server config
|
|
* @since Envoy Client v0.1-beta
|
|
*/
|
|
public static ServerConfig getInstance() { return config == null ? config = new ServerConfig() : config; }
|
|
|
|
private ServerConfig() {
|
|
super(".envoy-server");
|
|
put("enter-to-stop", "dev-stop", Boolean::parseBoolean);
|
|
// parameters for issue reporting
|
|
put("issueCreationURL", "i-url", identity());
|
|
put("issueAuthToken", "i-token", identity());
|
|
put("userMadeLabel", "l-um", identity());
|
|
put("bugLabel", "l-b", identity());
|
|
put("featureLabel", "l-f", identity());
|
|
// enabling/ disabling several processors
|
|
put("enableIssueReporting", "e-ir", Boolean::parseBoolean);
|
|
put("enableGroups", "e-g", Boolean::parseBoolean);
|
|
put("enableAttachments", "e-a", Boolean::parseBoolean);
|
|
// user authentication
|
|
put("authTokenExpiration", "tok-exp", Integer::parseInt);
|
|
}
|
|
|
|
/**
|
|
* @return true if this server should be stoppable by pressing enter
|
|
* @since Envoy Server v0.2-beta
|
|
*/
|
|
public Boolean isEnterToStop() { return (Boolean) items.get("enter-to-stop").get(); }
|
|
|
|
/**
|
|
* @return {@code true} if issue reporting is enabled
|
|
* @since Envoy Client v0.3-alpha
|
|
*/
|
|
public Boolean isIssueReportingEnabled() { return (Boolean) items.get("enableIssueReporting").get(); }
|
|
|
|
/**
|
|
* @return {@code true} if attachment support has been enabled
|
|
* @since Envoy Client v0.3-alpha
|
|
*/
|
|
public Boolean isAttachmentSupportEnabled() { return (Boolean) items.get("enableAttachments").get(); }
|
|
|
|
/**
|
|
* @return {@code true} if group support has been enabled
|
|
* @since Envoy Client v0.3-alpha
|
|
*/
|
|
public Boolean isGroupSupportEnabled() { return (Boolean) items.get("enableGroups").get(); }
|
|
|
|
/**
|
|
* @return the URL where issues should be uploaded to
|
|
* @since Envoy Client v0.1-alpha
|
|
*/
|
|
public String getIssueReportingURL() { return (String) items.get("issueCreationURL").get(); }
|
|
|
|
/**
|
|
* @return the String representation for the "{@code user made}" - label
|
|
* @since Envoy Client v0.1-alpha
|
|
*/
|
|
public String getUserMadeLabel() { return (String) items.get("userMadeLabel").get(); }
|
|
|
|
/**
|
|
* @return the String representation for the "{@code user made}" - label
|
|
* @since Envoy Client v0.1-alpha
|
|
*/
|
|
public String getBugLabel() { return (String) items.get("bugLabel").get(); }
|
|
|
|
/**
|
|
* @return the String representation for the "{@code user made}" - label
|
|
* @since Envoy Client v0.1-alpha
|
|
*/
|
|
public String getFeatureLabel() { return (String) items.get("featureLabel").get(); }
|
|
|
|
/**
|
|
* @return the authorization token used to authenticate to
|
|
* {@link ServerConfig#getIssueReportingURL()}. If null,
|
|
* authorization is expected to occur via a query_param or via a basic
|
|
* user-password-combination
|
|
* @since Envoy Server v0.2-beta
|
|
*/
|
|
public String getIssueAuthToken() { return (String) items.get("issueAuthToken").get(); }
|
|
|
|
/**
|
|
* @return the amount of days after which user authentication tokens expire
|
|
* @since Envoy Server v0.2-beta
|
|
*/
|
|
public Integer getAuthTokenExpiration() { return (Integer) items.get("authTokenExpiration").get(); }
|
|
}
|