View Javadoc

1   package com.atlassian.plugin.servlet.download.plugin;
2   
3   import com.atlassian.plugin.descriptors.AbstractModuleDescriptor;
4   import com.atlassian.plugin.servlet.DownloadStrategy;
5   import com.atlassian.plugin.hostcontainer.HostContainer;
6   import com.atlassian.plugin.AutowireCapablePlugin;
7   
8   /**
9    * A plugin module which provides a {@link DownloadStrategy}.
10   *
11   * @see DownloadStrategy
12   * @see PluggableDownloadStrategy
13   * @since 2.2.0
14   */
15  public class DownloadStrategyModuleDescriptor extends AbstractModuleDescriptor<DownloadStrategy>
16  {
17      private final HostContainer hostContainer;
18  
19      public DownloadStrategyModuleDescriptor(HostContainer hostContainer)
20      {
21          this.hostContainer = hostContainer;
22      }
23  
24      public DownloadStrategy getModule()
25      {
26          if (plugin instanceof AutowireCapablePlugin)
27          {
28              return ((AutowireCapablePlugin) plugin).autowire(getModuleClass());
29          }
30          return hostContainer.create(getModuleClass());
31      }
32  }