package io.divolte.server.config; import java.util.Objects; import javax.annotation.ParametersAreNonnullByDefault; import javax.validation.Valid; import com.fasterxml.jackson.annotation.JsonCreator; import com.google.common.base.MoreObjects; @ParametersAreNonnullByDefault public class GlobalConfiguration { @Valid public final ServerConfiguration server; @Valid public final MapperConfiguration mapper; @Valid public final HdfsConfiguration hdfs; @Valid public final KafkaConfiguration kafka; @Valid public final GoogleCloudStorageConfiguration gcs; @JsonCreator GlobalConfiguration(final ServerConfiguration server, final MapperConfiguration mapper, final HdfsConfiguration hdfs, final KafkaConfiguration kafka, final GoogleCloudStorageConfiguration gcs) { this.server = Objects.requireNonNull(server); this.mapper = Objects.requireNonNull(mapper); this.hdfs = Objects.requireNonNull(hdfs); this.kafka = Objects.requireNonNull(kafka); this.gcs = Objects.requireNonNull(gcs); } @Override public String toString() { return MoreObjects.toStringHelper(this) .add("server", server) .add("mapper", mapper) .add("hdfs", hdfs) .add("gcs", gcs) .add("kafka", kafka) .toString(); } }