1 package com.atlassian.activeobjects.plugin;
2
3 import com.atlassian.activeobjects.EntitiesValidator;
4 import com.atlassian.activeobjects.admin.PluginToTablesMapping;
5 import com.atlassian.activeobjects.config.ActiveObjectsConfigurationFactory;
6 import com.atlassian.activeobjects.osgi.OsgiServiceUtils;
7 import com.atlassian.plugin.ModuleDescriptor;
8 import com.atlassian.plugin.hostcontainer.HostContainer;
9 import com.atlassian.plugin.module.ModuleFactory;
10 import com.atlassian.plugin.osgi.external.SingleModuleDescriptorFactory;
11
12 import static com.google.common.base.Preconditions.checkNotNull;
13
14
15
16
17 public final class ActiveObjectsModuleDescriptorFactory extends SingleModuleDescriptorFactory<ActiveObjectModuleDescriptor> {
18
19 private final ModuleFactory moduleFactory;
20 private final OsgiServiceUtils osgiUtils;
21 private final PluginToTablesMapping pluginToTablesMapping;
22 private final EntitiesValidator entitiesValidator;
23 private final ActiveObjectsConfigurationFactory configurationFactory;
24
25 public ActiveObjectsModuleDescriptorFactory(ModuleFactory moduleFactory,
26 HostContainer hostContainer,
27 ActiveObjectsConfigurationFactory configurationFactory,
28 OsgiServiceUtils osgiUtils,
29 PluginToTablesMapping pluginToTablesMapping,
30 EntitiesValidator entitiesValidator) {
31 super(checkNotNull(hostContainer), "ao", ActiveObjectModuleDescriptor.class);
32 this.moduleFactory = checkNotNull(moduleFactory);
33 this.configurationFactory = checkNotNull(configurationFactory);
34 this.osgiUtils = checkNotNull(osgiUtils);
35 this.pluginToTablesMapping = checkNotNull(pluginToTablesMapping);
36 this.entitiesValidator = checkNotNull(entitiesValidator);
37 }
38
39 @Override
40 public ModuleDescriptor getModuleDescriptor(final String type) {
41 return hasModuleDescriptor(type) ? new ActiveObjectModuleDescriptor(moduleFactory, configurationFactory, osgiUtils, pluginToTablesMapping, entitiesValidator) : null;
42 }
43 }