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      private final RestServletModuleManager servletModuleManager;
16  
17      private final ModuleFactory moduleFactory;
18      private final String restContextPath;
19  
20      public RestModuleDescriptorFactory(HostContainer hostContainer, ModuleFactory moduleFactory, RestServletModuleManager servletModuleManager, String restContextPath) {
21          super(Preconditions.checkNotNull(hostContainer), "rest", RestModuleDescriptor.class);
22          this.moduleFactory = moduleFactory;
23          this.servletModuleManager = Preconditions.checkNotNull(servletModuleManager);
24          this.restContextPath = Preconditions.checkNotNull(restContextPath);
25      }
26  
27      @Override
28      public ModuleDescriptor getModuleDescriptor(String type) throws PluginParseException, IllegalAccessException, InstantiationException, ClassNotFoundException {
29          return hasModuleDescriptor(type) ? new RestModuleDescriptor(moduleFactory, servletModuleManager, restContextPath) : null;
30      }
31  }