1   package com.atlassian.plugins.codegen.modules.common.web;
2   
3   import com.atlassian.plugins.codegen.annotations.*;
4   import com.atlassian.plugins.codegen.modules.AbstractPluginModuleCreator;
5   import com.atlassian.plugins.codegen.modules.PluginModuleLocation;
6   
7   /**
8    * @since 3.6
9    */
10  @RefAppPluginModuleCreator
11  @JiraPluginModuleCreator
12  @ConfluencePluginModuleCreator
13  @BambooPluginModuleCreator
14  @FeCruPluginModuleCreator
15  @Dependencies({
16          @Dependency(groupId = "org.mockito", artifactId = "mockito-all", version = "1.8.5", scope = "test")
17          , @Dependency(groupId = "org.apache.httpcomponents", artifactId = "httpclient", version = "4.1.1", scope = "test")
18  })
19  public class WebResourceTransformerModuleCreator extends AbstractPluginModuleCreator<WebResourceTransformerProperties>
20  {
21  
22      public static final String MODULE_NAME = "Web Resource Transformer";
23      private static final String TEMPLATE_PREFIX = "templates/common/web/webrersourcetransformer/";
24  
25      //stub
26      private static final String CLASS_TEMPLATE = TEMPLATE_PREFIX + "WebResourceTransformer.java.vtl";
27      private static final String UNIT_TEST_TEMPLATE = TEMPLATE_PREFIX + "WebResourceTransformerTest.java.vtl";
28      private static final String FUNC_TEST_TEMPLATE = TEMPLATE_PREFIX + "WebResourceTransformerFuncTest.java.vtl";
29  
30      //examples
31      private static final String EXAMPLE_CLASS_TEMPLATE = TEMPLATE_PREFIX + "Example" + CLASS_TEMPLATE;
32  
33      private static final String PLUGIN_MODULE_TEMPLATE = TEMPLATE_PREFIX + "web-resource-transformer-plugin.xml.vtl";
34  
35      @Override
36      public void createModule(PluginModuleLocation location, WebResourceTransformerProperties props) throws Exception
37      {
38          String packageName = props.getPackage();
39  
40          String classname = props.getClassname();
41  
42          if (props.includeExamples())
43          {
44              templateHelper.writeJavaClassFromTemplate(EXAMPLE_CLASS_TEMPLATE, classname, location.getSourceDirectory(), packageName, props);
45          } else
46          {
47              //main class
48              templateHelper.writeJavaClassFromTemplate(CLASS_TEMPLATE, classname, location.getSourceDirectory(), packageName, props);
49  
50              //unit test
51              templateHelper.writeJavaClassFromTemplate(UNIT_TEST_TEMPLATE, testClassname(classname), location.getTestDirectory(), packageName, props);
52  
53              //func test
54              //templateHelper.writeJavaClassFromTemplate(FUNC_TEST_TEMPLATE, funcTestClassname(classname), location.getTestDirectory(), funcTestPackageName(packageName), props);
55          }
56  
57  
58          addModuleToPluginXml(PLUGIN_MODULE_TEMPLATE, location, props);
59      }
60  
61  
62      @Override
63      public String getModuleName()
64      {
65          return MODULE_NAME;
66      }
67  }