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
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 }