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

https://bitbucket.org/mmeinhold/amps · Java · 55 lines · 40 code · 9 blank · 6 comment · 0 complexity · cbaa590e96a46f8bb35e669a6b1f548b MD5 · raw file

  1. package com.atlassian.plugins.codegen;
  2. import static com.google.common.base.Preconditions.checkNotNull;
  3. /**
  4. * Describes a source file that should be added to the project.
  5. */
  6. public class SourceFile implements PluginProjectChange
  7. {
  8. /**
  9. * Specifies whether to add the file to {@code src/main} or {@code src/test}.
  10. */
  11. public enum SourceGroup
  12. {
  13. MAIN,
  14. TESTS
  15. };
  16. private final ClassId classId;
  17. private final SourceGroup sourceGroup;
  18. private final String content;
  19. public static SourceFile sourceFile(ClassId classId, SourceGroup sourceGroup, String content)
  20. {
  21. return new SourceFile(classId, sourceGroup, content);
  22. }
  23. private SourceFile(ClassId classId, SourceGroup sourceGroup, String content)
  24. {
  25. this.classId = checkNotNull(classId, "classId");
  26. this.sourceGroup = checkNotNull(sourceGroup, "sourceGroup");
  27. this.content = checkNotNull(content, "content");
  28. }
  29. public ClassId getClassId()
  30. {
  31. return classId;
  32. }
  33. public SourceGroup getSourceGroup()
  34. {
  35. return sourceGroup;
  36. }
  37. public String getContent()
  38. {
  39. return content;
  40. }
  41. @Override
  42. public String toString()
  43. {
  44. return "[class: " + classId + "]";
  45. }
  46. }