1 package com.atlassian.plugins.codegen.modules.stash.ssh;
2
3 import com.atlassian.plugins.codegen.ClassId;
4 import com.atlassian.plugins.codegen.PluginProjectChangeset;
5 import com.atlassian.plugins.codegen.annotations.StashPluginModuleCreator;
6 import com.atlassian.plugins.codegen.modules.AbstractPluginModuleCreator;
7
8 import static com.atlassian.plugins.codegen.modules.Dependencies.MOCKITO_TEST;
9 import static com.atlassian.plugins.codegen.modules.Dependencies.SLF4J;
10
11 @StashPluginModuleCreator
12 public class SshScmRequestHandlerModuleCreator extends AbstractPluginModuleCreator<SshScmRequestHandlerProperties>
13 {
14
15 public static final String MODULE_NAME = "SSH Request Handler";
16
17 private static final String TEMPLATE_PREFIX = "templates/stash/ssh/";
18
19 private static final String REQUEST_TEMPLATE = TEMPLATE_PREFIX + "SshScmRequest.java.vtl";
20 private static final String REQUEST_TEST_TEMPLATE = TEMPLATE_PREFIX + "SshScmRequestTest.java.vtl";
21 private static final String HANDLER_TEMPLATE = TEMPLATE_PREFIX + "SshScmRequestHandler.java.vtl";
22 private static final String HANDLER_TEST_TEMPLATE = TEMPLATE_PREFIX + "SshScmRequestHandlerTest.java.vtl";
23 private static final String PLUGIN_MODULE_TEMPLATE = TEMPLATE_PREFIX + "ssh-request-handler-plugin.xml.vtl";
24
25 @Override
26 public PluginProjectChangeset createModule(SshScmRequestHandlerProperties props) throws Exception
27 {
28 ClassId requestTestClass = testClassFor(props.getRequestClassId());
29 return new PluginProjectChangeset()
30 .with(SLF4J)
31 .with(MOCKITO_TEST)
32 .with(createModule(props, PLUGIN_MODULE_TEMPLATE))
33 .with(createClass(props, props.getRequestClassId(), REQUEST_TEMPLATE))
34 .with(createTestClass(props.withClass(requestTestClass), requestTestClass, REQUEST_TEST_TEMPLATE))
35 .with(createClassAndTests(props, HANDLER_TEMPLATE, HANDLER_TEST_TEMPLATE));
36 }
37
38 @Override
39 public String getModuleName()
40 {
41 return MODULE_NAME;
42 }
43
44 }