1 package net.avcompris.examples.users3.web;
2
3 import static com.google.common.base.Preconditions.checkNotNull;
4 import static net.avcompris.commons3.dao.DbTablesUtils.composeActualDbTableName;
5 import static net.avcompris.examples.users3.dao.impl.DbTables.AUTH;
6 import static net.avcompris.examples.users3.dao.impl.DbTables.CORRELATIONS;
7 import static net.avcompris.examples.users3.dao.impl.DbTables.USERS;
8
9 import org.springframework.context.annotation.Bean;
10 import org.springframework.context.annotation.Configuration;
11
12 import net.avcompris.commons3.web.AbstractApplicationConfig;
13
14 @Configuration
15 public class ApplicationConfig extends AbstractApplicationConfig {
16
17 private final RDSConfig rds = new RDSConfig();
18
19 @Bean(name = "rds")
20 public RDSConfig getRDS() {
21
22 return rds;
23 }
24
25 public static final class RDSConfig extends AbstractRDSConfig {
26
27 public RDSConfig() {
28
29 super(
30 "rds.url",
31 "rds.username",
32 "rds.password",
33 "rds.tableNamePrefix");
34 }
35
36 public TableNames getTableNames() {
37
38 return new TableNames(getTableNamePrefix());
39 }
40 }
41
42 public static final class TableNames {
43
44 private final String tableNamePrefix;
45
46 private TableNames(final String tableNamePrefix) {
47
48 this.tableNamePrefix = checkNotNull(tableNamePrefix, "tableNamePrefix");
49 }
50
51 public String getAuth() {
52
53 return composeActualDbTableName(tableNamePrefix, AUTH);
54 }
55
56 public String getCorrelations() {
57
58 return composeActualDbTableName(tableNamePrefix, CORRELATIONS);
59 }
60
61 public String getUsers() {
62
63 return composeActualDbTableName(tableNamePrefix, USERS);
64 }
65 }
66 }