1   package com.atlassian.plugins.codegen.modules.common.component;
2   
3   import com.atlassian.plugins.codegen.ComponentImport;
4   import com.atlassian.plugins.codegen.PluginProjectChangeset;
5   import com.atlassian.plugins.codegen.annotations.*;
6   import com.atlassian.plugins.codegen.modules.AbstractPluginModuleCreator;
7   
8   import static com.atlassian.fugue.Option.option;
9   import static com.atlassian.plugins.codegen.ComponentImport.componentImport;
10  import static com.atlassian.plugins.codegen.modules.Dependencies.MOCKITO_TEST;
11  import static com.atlassian.plugins.codegen.modules.Dependencies.SLF4J;
12  
13  /**
14   * @since 3.6
15   */
16  @RefAppPluginModuleCreator
17  @JiraPluginModuleCreator
18  @ConfluencePluginModuleCreator
19  @BambooPluginModuleCreator
20  @FeCruPluginModuleCreator
21  @CrowdPluginModuleCreator
22  @StashPluginModuleCreator
23  public class ComponentImportModuleCreator extends AbstractPluginModuleCreator<ComponentImportProperties>
24  {
25      public static final String MODULE_NAME = "Component Import";
26  
27      @Override
28      public PluginProjectChangeset createModule(ComponentImportProperties props) throws Exception
29      {
30          ComponentImport componentImport = componentImport(props.getInterfaceId())
31              .key(option(props.getModuleKey()))
32              .filter(option(props.getFilter()));
33          
34          return new PluginProjectChangeset()
35              .with(SLF4J,
36                    MOCKITO_TEST)
37              .with(componentImport);
38      }
39  
40      @Override
41      public String getModuleName()
42      {
43          return MODULE_NAME;
44      }
45  }