package io.robe.admin; import com.fasterxml.jackson.annotation.JsonProperty; import io.dropwizard.Configuration; import io.robe.admin.recaptcha.ReCaptchaConfiguration; import io.robe.assets.AssetConfiguration; import io.robe.assets.HasAssetConfiguration; import io.robe.auth.token.configuration.HasTokenBasedAuthConfiguration; import io.robe.auth.token.configuration.TokenBasedAuthConfiguration; import io.robe.guice.GuiceConfiguration; import io.robe.guice.HasGuiceConfiguration; import io.robe.hibernate.HasHibernateConfiguration; import io.robe.hibernate.HibernateConfiguration; import io.robe.mail.HasMailConfiguration; import io.robe.mail.MailConfiguration; import io.robe.quartz.configuration.HasQuartzConfiguration; import io.robe.quartz.configuration.QuartzConfiguration; import javax.validation.Valid; import javax.validation.constraints.NotNull; import java.util.List; public class RobeConfiguration extends Configuration implements HasHibernateConfiguration, HasGuiceConfiguration, HasQuartzConfiguration, HasMailConfiguration, HasTokenBasedAuthConfiguration, HasAssetConfiguration { @Valid @NotNull @JsonProperty private HibernateConfiguration hibernate; @Valid @JsonProperty private MailConfiguration mail; @Valid @NotNull @JsonProperty private QuartzConfiguration quartz; @Valid @JsonProperty private GuiceConfiguration guice; @Valid @JsonProperty private TokenBasedAuthConfiguration auth; @Valid @JsonProperty private List<AssetConfiguration> assets; @Valid @JsonProperty private ReCaptchaConfiguration recaptcha; public HibernateConfiguration getHibernate() { return hibernate; } @Override public MailConfiguration getMail() { return mail; } @Override public QuartzConfiguration getQuartz() { return quartz; } @Override public GuiceConfiguration getGuice() { return guice; } @Override public TokenBasedAuthConfiguration getAuth() { return auth; } @Override public List<AssetConfiguration> getAssets() { return assets; } public ReCaptchaConfiguration getRecaptcha() { return recaptcha; } }