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  @Dependencies({
15          @Dependency(groupId = "org.mockito", artifactId = "mockito-all", version = "1.8.5", scope = "test")
16  })
17  public class WebPanelRendererModuleCreator extends AbstractPluginModuleCreator<WebPanelRendererProperties>
18  {
19  
20      public static final String MODULE_NAME = "Web Panel Renderer";
21      private static final String TEMPLATE_PREFIX = "templates/common/web/webpanelrenderer/";
22  
23      //stub
24      private static final String CLASS_TEMPLATE = TEMPLATE_PREFIX + "WebPanelRenderer.java.vtl";
25      private static final String UNIT_TEST_TEMPLATE = TEMPLATE_PREFIX + "WebPanelRendererTest.java.vtl";
26      private static final String FUNC_TEST_TEMPLATE = TEMPLATE_PREFIX + "WebPanelRendererFuncTest.java.vtl";
27  
28      //examples
29      private static final String EXAMPLE_CLASS_TEMPLATE = TEMPLATE_PREFIX + "Example" + CLASS_TEMPLATE;
30  
31      private static final String PLUGIN_MODULE_TEMPLATE = TEMPLATE_PREFIX + "web-panel-renderer-plugin.xml.vtl";
32  
33      @Override
34      public void createModule(PluginModuleLocation location, WebPanelRendererProperties props) throws Exception
35      {
36          String packageName = props.getPackage();
37  
38          String classname = props.getClassname();
39  
40          if (props.includeExamples())
41          {
42              templateHelper.writeJavaClassFromTemplate(EXAMPLE_CLASS_TEMPLATE, classname, location.getSourceDirectory(), packageName, props);
43          } else
44          {
45              //main class
46              templateHelper.writeJavaClassFromTemplate(CLASS_TEMPLATE, classname, location.getSourceDirectory(), packageName, props);
47  
48              //unit test
49              templateHelper.writeJavaClassFromTemplate(UNIT_TEST_TEMPLATE, testClassname(classname), location.getTestDirectory(), packageName, props);
50  
51              //func test
52              //templateHelper.writeJavaClassFromTemplate(FUNC_TEST_TEMPLATE, funcTestClassname(classname), location.getTestDirectory(), funcTestPackageName(packageName), props);
53          }
54  
55  
56          addModuleToPluginXml(PLUGIN_MODULE_TEMPLATE, location, props);
57      }
58  
59  
60      @Override
61      public String getModuleName()
62      {
63          return MODULE_NAME;
64      }
65  }