1 package com.atlassian.activeobjects.config.internal;
2
3 import com.atlassian.activeobjects.config.ActiveObjectsConfiguration;
4 import com.atlassian.activeobjects.config.PluginKey;
5 import com.atlassian.activeobjects.external.ActiveObjectsUpgradeTask;
6 import com.atlassian.activeobjects.internal.DataSourceType;
7 import com.atlassian.activeobjects.internal.DataSourceTypeResolver;
8 import com.atlassian.activeobjects.internal.Prefix;
9 import net.java.ao.RawEntity;
10 import net.java.ao.SchemaConfiguration;
11 import net.java.ao.schema.NameConverters;
12 import org.apache.commons.lang3.builder.EqualsBuilder;
13 import org.apache.commons.lang3.builder.HashCodeBuilder;
14
15 import java.util.List;
16 import java.util.Set;
17
18 import static com.google.common.base.Preconditions.checkNotNull;
19
20
21
22
23
24
25
26 public final class DefaultActiveObjectsConfiguration implements ActiveObjectsConfiguration {
27 private final PluginKey pluginKey;
28 private final DataSourceTypeResolver dataSourceTypeResolver;
29 private Prefix tableNamePrefix;
30 private NameConverters nameConverters;
31 private SchemaConfiguration schemaConfiguration;
32
33 private Set<Class<? extends RawEntity<?>>> entities;
34 private List<ActiveObjectsUpgradeTask> upgradeTasks;
35
36 public DefaultActiveObjectsConfiguration(PluginKey pluginKey, DataSourceTypeResolver dataSourceTypeResolver) {
37 this.pluginKey = checkNotNull(pluginKey);
38 this.dataSourceTypeResolver = checkNotNull(dataSourceTypeResolver);
39 }
40
41 @Override
42 public PluginKey getPluginKey() {
43 return pluginKey;
44 }
45
46 @Override
47 public DataSourceType getDataSourceType() {
48 return dataSourceTypeResolver.getDataSourceType(getTableNamePrefix());
49 }
50
51 @Override
52 public Prefix getTableNamePrefix() {
53 return tableNamePrefix;
54 }
55
56 public void setTableNamePrefix(Prefix tableNamePrefix) {
57 this.tableNamePrefix = tableNamePrefix;
58 }
59
60 @Override
61 public NameConverters getNameConverters() {
62 return nameConverters;
63 }
64
65 public void setNameConverters(NameConverters nameConverters) {
66 this.nameConverters = nameConverters;
67 }
68
69 @Override
70 public SchemaConfiguration getSchemaConfiguration() {
71 return schemaConfiguration;
72 }
73
74 public void setSchemaConfiguration(SchemaConfiguration schemaConfiguration) {
75 this.schemaConfiguration = schemaConfiguration;
76 }
77
78 @Override
79 public Set<Class<? extends RawEntity<?>>> getEntities() {
80 return entities;
81 }
82
83 public void setEntities(Set<Class<? extends RawEntity<?>>> entities) {
84 this.entities = entities;
85 }
86
87 @Override
88 public List<ActiveObjectsUpgradeTask> getUpgradeTasks() {
89 return upgradeTasks;
90 }
91
92 public void setUpgradeTasks(List<ActiveObjectsUpgradeTask> upgradeTasks) {
93 this.upgradeTasks = upgradeTasks;
94 }
95
96 @Override
97 public final int hashCode() {
98 return new HashCodeBuilder(5, 13).append(pluginKey).toHashCode();
99 }
100
101 @Override
102 public final boolean equals(Object o) {
103 if (o == null) {
104 return false;
105 }
106 if (o == this) {
107 return true;
108 }
109 if (o.getClass() != getClass()) {
110 return false;
111 }
112
113 final DefaultActiveObjectsConfiguration configuration = (DefaultActiveObjectsConfiguration) o;
114 return new EqualsBuilder().append(pluginKey, configuration.pluginKey).isEquals();
115 }
116 }