package org.oregami.dropwizard; import com.fasterxml.jackson.annotation.JsonProperty; import com.google.common.collect.Maps; import io.dropwizard.Configuration; import javax.validation.Valid; import javax.validation.constraints.NotNull; import java.util.Map; public class OregamiConfiguration extends Configuration { public class DatabaseConfiguration { @NotNull private String jpaUnit = null; @NotNull private String driverClass = null; private String user = null; private String password = ""; @NotNull private String url = null; @NotNull private Map<String, String> properties = Maps.newLinkedHashMap(); public String getDriverClass() { return driverClass; } public void setDriverClass(String driverClass) { this.driverClass = driverClass; } public String getUser() { return user; } public void setUser(String user) { this.user = user; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public Map<String, String> getProperties() { return properties; } public void setProperties(Map<String, String> properties) { this.properties = properties; } public String getUrl() { return url; } public void setUrl(String url) { this.url = url; } public String getJpaUnit() { return jpaUnit; } public void setJpaUnit(String jpaUnit) { this.jpaUnit = jpaUnit; } } @JsonProperty private DatabaseConfiguration databaseConfiguration = null; public DatabaseConfiguration getDatabaseConfiguration() { return databaseConfiguration; } public void setDatabaseConfiguration(DatabaseConfiguration databaseConfiguration) { this.databaseConfiguration = databaseConfiguration; } @Valid @JsonProperty private boolean initBaseLists = false; @Valid @JsonProperty private boolean initGames = false; public void setInitBaseLists(boolean initBaseLists) { this.initBaseLists = initBaseLists; } public void setInitGames(boolean initGames) { this.initGames = initGames; } public boolean isInitBaseLists() { return initBaseLists; } public boolean isInitGames() { return initGames; } @Valid @NotNull @JsonProperty private final PhantomJSConfiguration phantomJSConfiguration = new PhantomJSConfiguration(); public PhantomJSConfiguration getPhantomJSConfiguration() { return phantomJSConfiguration; } @Valid @NotNull @JsonProperty private MailConfiguration mailConfiguration; public MailConfiguration getMailConfiguration() { return mailConfiguration; } }