/plugin-module-codegen-api/src/main/java/com/atlassian/plugins/codegen/modules/PluginModuleLocation.java

https://bitbucket.org/mmeinhold/amps · Java · 108 lines · 88 code · 17 blank · 3 comment · 0 complexity · 2bfdd80d086344aa1e3968643640faac MD5 · raw file

  1. package com.atlassian.plugins.codegen.modules;
  2. import java.io.File;
  3. /**
  4. *
  5. */
  6. public class PluginModuleLocation
  7. {
  8. private final File sourceDirectory;
  9. private final File resourcesDir;
  10. private final File testDirectory;
  11. private final File templateDirectory;
  12. private final File pluginXml;
  13. private final String groupId;
  14. private final String artifactId;
  15. private PluginModuleLocation(Builder builder)
  16. {
  17. this.sourceDirectory = builder.sourceDirectory;
  18. this.templateDirectory = builder.templateDirectory;
  19. this.resourcesDir = builder.resourcesDirectory;
  20. this.testDirectory = builder.testDirectory;
  21. this.groupId = builder.groupId;
  22. this.artifactId = builder.artifactId;
  23. this.pluginXml = new File(resourcesDir, "atlassian-plugin.xml");
  24. }
  25. public File getSourceDirectory()
  26. {
  27. return sourceDirectory;
  28. }
  29. public File getResourcesDir()
  30. {
  31. return resourcesDir;
  32. }
  33. public File getTestDirectory()
  34. {
  35. return testDirectory;
  36. }
  37. public File getTemplateDirectory()
  38. {
  39. return templateDirectory;
  40. }
  41. public File getPluginXml()
  42. {
  43. return pluginXml;
  44. }
  45. public String getGroupId()
  46. {
  47. return groupId;
  48. }
  49. public String getArtifactId()
  50. {
  51. return artifactId;
  52. }
  53. public static class Builder
  54. {
  55. private File sourceDirectory;
  56. private File resourcesDirectory;
  57. private File testDirectory;
  58. private File templateDirectory;
  59. private String groupId;
  60. private String artifactId;
  61. public Builder(File sourceDirectory)
  62. {
  63. this.sourceDirectory = sourceDirectory;
  64. }
  65. public Builder testDirectory(File testDirectory)
  66. {
  67. this.testDirectory = testDirectory;
  68. return this;
  69. }
  70. public Builder resourcesDirectory(File resourcesDirectory)
  71. {
  72. this.resourcesDirectory = resourcesDirectory;
  73. return this;
  74. }
  75. public Builder templateDirectory(File templateDirectory)
  76. {
  77. this.templateDirectory = templateDirectory;
  78. return this;
  79. }
  80. public Builder groupAndArtifactId(String groupId, String artifactId)
  81. {
  82. this.groupId = groupId;
  83. this.artifactId = artifactId;
  84. return this;
  85. }
  86. public PluginModuleLocation build()
  87. {
  88. return new PluginModuleLocation(this);
  89. }
  90. }
  91. }