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