View Javadoc

1   package com.atlassian.plugins.rest.module;
2   
3   import com.atlassian.plugin.ModuleDescriptor;
4   import com.atlassian.plugin.PluginParseException;
5   import com.atlassian.plugin.hostcontainer.HostContainer;
6   import com.atlassian.plugin.module.ModuleFactory;
7   import com.atlassian.plugin.osgi.external.SingleModuleDescriptorFactory;
8   import com.atlassian.plugins.rest.module.servlet.RestServletModuleManager;
9   import com.google.common.base.Preconditions;
10  
11  /**
12   * Module descriptor factory for REST module descriptors.
13   */
14  public class RestModuleDescriptorFactory extends SingleModuleDescriptorFactory<RestModuleDescriptor>
15  {
16      private final RestServletModuleManager servletModuleManager;
17  
18      private final ModuleFactory moduleFactory;
19      private final String restContextPath;
20  
21      public RestModuleDescriptorFactory(HostContainer hostContainer, ModuleFactory moduleFactory, RestServletModuleManager servletModuleManager, String restContextPath)
22      {
23          super(Preconditions.checkNotNull(hostContainer), "rest", RestModuleDescriptor.class);
24          this.moduleFactory = moduleFactory;
25          this.servletModuleManager = Preconditions.checkNotNull(servletModuleManager);
26          this.restContextPath = Preconditions.checkNotNull(restContextPath);
27      }
28  
29      @Override
30      public ModuleDescriptor getModuleDescriptor(String type) throws PluginParseException, IllegalAccessException, InstantiationException, ClassNotFoundException
31      {
32          return hasModuleDescriptor(type) ? new RestModuleDescriptor(moduleFactory, servletModuleManager, restContextPath) : null;
33      }
34  }