package io.divolte.server.config; import com.fasterxml.jackson.annotation.JsonCreator; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.base.MoreObjects; import javax.annotation.ParametersAreNonnullByDefault; import java.util.Objects; import java.util.Optional; @ParametersAreNonnullByDefault public final class ServerConfiguration { public final Optional<String> host; public final int port; public final boolean useXForwardedFor; public final boolean serveStaticResources; public final boolean debugRequests; @JsonCreator ServerConfiguration(final Optional<String> host, final int port, @JsonProperty("use_x_forwarded_for") final boolean useXForwardedFor, final boolean serveStaticResources, final boolean debugRequests) { this.host = Objects.requireNonNull(host); this.port = port; this.useXForwardedFor = useXForwardedFor; this.serveStaticResources = serveStaticResources; this.debugRequests = debugRequests; } @Override public String toString() { return MoreObjects.toStringHelper(this) .add("host", host) .add("port", port) .add("useXForwardedFor", useXForwardedFor) .add("serverStaticResources", serveStaticResources) .add("debugRequests", debugRequests) .toString(); } }