PageRenderTime 36ms CodeModel.GetById 9ms RepoModel.GetById 0ms app.codeStats 0ms

/atlassian-docco/src/main/java/com/atlassian/docco/mapping/DoccoFileMappingManager.java

https://bitbucket.org/Arnauld/atlassian-docco
Java | 101 lines | 77 code | 21 blank | 3 comment | 0 complexity | 0300aef45eeef13d71716bc72455005c MD5 | raw file
  1. package com.atlassian.docco.mapping;
  2. import java.io.File;
  3. import java.util.HashMap;
  4. import java.util.List;
  5. import java.util.Map;
  6. import com.google.common.collect.ImmutableList;
  7. import org.apache.commons.io.FilenameUtils;
  8. import static com.google.common.base.Preconditions.checkNotNull;
  9. /**
  10. * @since 1.0
  11. */
  12. public class DoccoFileMappingManager
  13. {
  14. private Map<String, DoccoFileMapping> patternsMap;
  15. public DoccoFileMappingManager()
  16. {
  17. this.patternsMap = new HashMap<String, DoccoFileMapping>();
  18. patternsMap.put("java", new DoccoFileMapping(DoccoCommentPatternsBuilder.CODE_PATTERNS,"java",false));
  19. patternsMap.put("scala", new DoccoFileMapping(DoccoCommentPatternsBuilder.CODE_PATTERNS,"java",false));
  20. patternsMap.put("js", new DoccoFileMapping(DoccoCommentPatternsBuilder.CODE_PATTERNS,"javascript",false));
  21. patternsMap.put("css", new DoccoFileMapping(DoccoCommentPatternsBuilder.CODE_PATTERNS,"css",false));
  22. patternsMap.put("html", new DoccoFileMapping(DoccoCommentPatternsBuilder.MARKUP_PATTERNS,"html",false));
  23. patternsMap.put("htm", new DoccoFileMapping(DoccoCommentPatternsBuilder.MARKUP_PATTERNS,"html",false));
  24. patternsMap.put("xhtml", new DoccoFileMapping(DoccoCommentPatternsBuilder.MARKUP_PATTERNS,"html",false));
  25. patternsMap.put("xml", new DoccoFileMapping(DoccoCommentPatternsBuilder.MARKUP_PATTERNS,"xml",false));
  26. patternsMap.put("ftl", new DoccoFileMapping(DoccoCommentPatternsBuilder.MARKUP_PATTERNS,"html",false));
  27. patternsMap.put("vm", new DoccoFileMapping(DoccoCommentPatternsBuilder.MARKUP_PATTERNS,"html",false));
  28. patternsMap.put("vtl", new DoccoFileMapping(DoccoCommentPatternsBuilder.MARKUP_PATTERNS,"html",false));
  29. patternsMap.put("soy", new DoccoFileMapping(DoccoCommentPatternsBuilder.CODE_PATTERNS,"xml",true));
  30. patternsMap.put("properties", new DoccoFileMapping(DoccoCommentPatternsBuilder.TEXT_PATTERNS,"bash",false));
  31. }
  32. public DoccoCommentPatterns getPatternsForFileExtension(String extension)
  33. {
  34. checkNotNull(extension);
  35. DoccoFileMapping doccoFileMapping = patternsMap.get(extension.toLowerCase());
  36. checkNotNull(doccoFileMapping, "Extension %s not supported", extension);
  37. return doccoFileMapping.getPatterns();
  38. }
  39. public DoccoCommentPatterns getPatternsForFile(File file)
  40. {
  41. checkNotNull(file);
  42. return getPatternsForFileExtension(FilenameUtils.getExtension(file.getName()));
  43. }
  44. public String getSyntaxForFileExtension(String extension)
  45. {
  46. checkNotNull(extension);
  47. return patternsMap.get(extension.toLowerCase()).getSyntaxName();
  48. }
  49. public String getSyntaxForFile(File file)
  50. {
  51. checkNotNull(file);
  52. return getSyntaxForFileExtension(FilenameUtils.getExtension(file.getName()));
  53. }
  54. public boolean getForceKeepJavadocForFile(File file)
  55. {
  56. checkNotNull(file);
  57. return getForceKeepJavadocForFileExtension(FilenameUtils.getExtension(file.getName()));
  58. }
  59. private boolean getForceKeepJavadocForFileExtension(String extension)
  60. {
  61. checkNotNull(extension);
  62. return patternsMap.get(extension.toLowerCase()).forceKeepJavadoc();
  63. }
  64. public void addMappingForFileExtension(String extension, DoccoFileMapping mapping)
  65. {
  66. checkNotNull(extension);
  67. checkNotNull(mapping);
  68. patternsMap.put(extension,mapping);
  69. }
  70. public void addMappingForFile(File file, DoccoFileMapping mapping)
  71. {
  72. checkNotNull(file);
  73. checkNotNull(mapping);
  74. addMappingForFileExtension(FilenameUtils.getExtension(file.getName()),mapping);
  75. }
  76. public List<String> getMappedFileExtensions()
  77. {
  78. return ImmutableList.copyOf(patternsMap.keySet());
  79. }
  80. }