View Javadoc
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   * The factory to create the <ao ...> module descriptor.
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  }