/plugin-module-codegen-engine/src/main/java/com/atlassian/plugins/codegen/modules/jira/CustomFieldModuleCreator.java

https://bitbucket.org/mmeinhold/amps · Java · 59 lines · 42 code · 11 blank · 6 comment · 2 complexity · dd2fed0aa3ccc478358faa83289a90a1 MD5 · raw file

  1. package com.atlassian.plugins.codegen.modules.jira;
  2. import com.atlassian.plugins.codegen.PluginProjectChangeset;
  3. import com.atlassian.plugins.codegen.annotations.JiraPluginModuleCreator;
  4. import com.atlassian.plugins.codegen.modules.AbstractPluginModuleCreator;
  5. import com.atlassian.plugins.codegen.modules.common.Resource;
  6. import static com.atlassian.plugins.codegen.modules.Dependencies.MOCKITO_TEST;
  7. /**
  8. * @since 3.6
  9. */
  10. @JiraPluginModuleCreator
  11. public class CustomFieldModuleCreator extends AbstractPluginModuleCreator<CustomFieldProperties>
  12. {
  13. public static final String MODULE_NAME = "Custom Field";
  14. private static final String TEMPLATE_PREFIX = "templates/jira/customfield/";
  15. //stub
  16. private static final String CLASS_TEMPLATE = TEMPLATE_PREFIX + "CustomField.java.vtl";
  17. private static final String UNIT_TEST_TEMPLATE = "templates/generic/GenericTest.java.vtl";
  18. private static final String VIEW_TEMPLATE = "templates/common/actionview.vm.vtl";
  19. //examples
  20. private static final String EXAMPLE_CLASS_TEMPLATE = TEMPLATE_PREFIX + "Example" + CLASS_TEMPLATE;
  21. private static final String PLUGIN_MODULE_TEMPLATE = TEMPLATE_PREFIX + "custom-field-plugin.xml.vtl";
  22. @Override
  23. public PluginProjectChangeset createModule(CustomFieldProperties props) throws Exception
  24. {
  25. PluginProjectChangeset ret = new PluginProjectChangeset()
  26. .with(MOCKITO_TEST)
  27. .with(createModule(props, PLUGIN_MODULE_TEMPLATE));
  28. if (props.includeExamples())
  29. {
  30. return ret.with(createClass(props, EXAMPLE_CLASS_TEMPLATE));
  31. }
  32. else
  33. {
  34. ret = ret.with(createClassAndTests(props, CLASS_TEMPLATE, UNIT_TEST_TEMPLATE));
  35. //since we know resources are velocity templates, let's create them
  36. for (Resource resource : props.getResources())
  37. {
  38. ret = ret.with(createTemplateResource(props, resource, VIEW_TEMPLATE));
  39. }
  40. return ret;
  41. }
  42. }
  43. @Override
  44. public String getModuleName()
  45. {
  46. return MODULE_NAME;
  47. }
  48. }