1 package com.atlassian.activeobjects.internal.config;
2
3 import com.atlassian.activeobjects.ao.AtlassianTablePrefix;
4 import com.atlassian.activeobjects.internal.Prefix;
5 import net.java.ao.atlassian.AtlassianTableNameConverter;
6 import net.java.ao.builder.SimpleNameConverters;
7 import net.java.ao.schema.FieldNameConverter;
8 import net.java.ao.schema.IndexNameConverter;
9 import net.java.ao.schema.NameConverters;
10 import net.java.ao.schema.SequenceNameConverter;
11 import net.java.ao.schema.TriggerNameConverter;
12 import net.java.ao.schema.UniqueNameConverter;
13
14 import static com.google.common.base.Preconditions.checkNotNull;
15
16 public final class ActiveObjectsNameConvertersFactory implements NameConvertersFactory {
17 private final FieldNameConverter fieldNameConverter;
18 private final SequenceNameConverter sequenceNameConverter;
19 private final TriggerNameConverter triggerNameConverter;
20 private final IndexNameConverter indexNameConverter;
21 private final UniqueNameConverter uniqueNameConverter;
22
23 public ActiveObjectsNameConvertersFactory(FieldNameConverter fieldNameConverter, SequenceNameConverter sequenceNameConverter,
24 TriggerNameConverter triggerNameConverter, IndexNameConverter indexNameConverter,
25 UniqueNameConverter uniqueNameConverter) {
26 this.fieldNameConverter = checkNotNull(fieldNameConverter);
27 this.sequenceNameConverter = checkNotNull(sequenceNameConverter);
28 this.triggerNameConverter = checkNotNull(triggerNameConverter);
29 this.indexNameConverter = checkNotNull(indexNameConverter);
30 this.uniqueNameConverter = checkNotNull(uniqueNameConverter);
31 }
32
33 @Override
34 public NameConverters getNameConverters(Prefix prefix) {
35 return new SimpleNameConverters(
36 new AtlassianTableNameConverter(new AtlassianTablePrefix(prefix)),
37 fieldNameConverter,
38 sequenceNameConverter,
39 triggerNameConverter,
40 indexNameConverter,
41 uniqueNameConverter
42 );
43 }
44 }