1 package com.atlassian.plugins.codegen.modules.common.moduletype;
2
3 import com.atlassian.plugins.codegen.PluginProjectChangeset;
4 import com.atlassian.plugins.codegen.annotations.*;
5 import com.atlassian.plugins.codegen.modules.AbstractPluginModuleCreator;
6
7 import static com.atlassian.plugins.codegen.modules.Dependencies.MOCKITO_TEST;
8 import static com.atlassian.plugins.codegen.modules.Dependencies.SLF4J;
9
10
11
12
13 @RefAppPluginModuleCreator
14 @JiraPluginModuleCreator
15 @ConfluencePluginModuleCreator
16 @BambooPluginModuleCreator
17 @FeCruPluginModuleCreator
18 @CrowdPluginModuleCreator
19 @StashPluginModuleCreator
20 public class ModuleTypeModuleCreator extends AbstractPluginModuleCreator<ModuleTypeProperties>
21 {
22 public static final String MODULE_NAME = "Module Type";
23 private static final String TEMPLATE_PREFIX = "templates/common/moduletype/";
24
25
26 private static final String CLASS_TEMPLATE = TEMPLATE_PREFIX + "ModuleType.java.vtl";
27 private static final String INTERFACE_TEMPLATE = TEMPLATE_PREFIX + "ModuleTypeInterface.java.vtl";
28
29
30 private static final String EXAMPLE_CLASS_TEMPLATE = TEMPLATE_PREFIX + "Example" + CLASS_TEMPLATE;
31
32 private static final String PLUGIN_MODULE_TEMPLATE = TEMPLATE_PREFIX + "module-type-plugin.xml.vtl";
33
34 @Override
35 public PluginProjectChangeset createModule(ModuleTypeProperties props) throws Exception
36 {
37 PluginProjectChangeset ret = new PluginProjectChangeset()
38 .with(SLF4J,
39 MOCKITO_TEST)
40 .with(createModule(props, PLUGIN_MODULE_TEMPLATE));
41
42
43 if (props.includeExamples())
44 {
45 return ret.with(createClass(props, EXAMPLE_CLASS_TEMPLATE));
46 }
47 else
48 {
49 return ret.with(createClass(props, props.getInterfaceId(), INTERFACE_TEMPLATE))
50 .with(createClassAndTests(props, CLASS_TEMPLATE, GENERIC_TEST_TEMPLATE, GENERIC_TEST_TEMPLATE));
51 }
52 }
53
54 @Override
55 public String getModuleName()
56 {
57 return MODULE_NAME;
58 }
59 }