src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlConfiguration.java
changeset 48759 ffa68af7da87
parent 48654 36f58bd6269f
child 49139 771616d26ca1
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlConfiguration.java	Wed Feb 07 09:48:43 2018 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlConfiguration.java	Wed Feb 07 11:28:23 2018 -0800
@@ -210,6 +210,12 @@
     public HtmlVersion htmlVersion = null;
 
     /**
+     * Flag to enable/disable use of module directories when generating docs for modules
+     * Default: on (module directories are enabled).
+     */
+    public boolean useModuleDirectories = true;
+
+    /**
      * Collected set of doclint options
      */
     public Map<Doclet.Option, String> doclintOpts = new LinkedHashMap<>();
@@ -245,6 +251,8 @@
 
     protected final Messages messages;
 
+    protected DocPaths docPaths;
+
     /**
      * Creates an object to hold the configuration for a doclet.
      *
@@ -357,6 +365,7 @@
                 }
             }
         }
+        docPaths = new DocPaths(utils, useModuleDirectories);
         setCreateOverview();
         setTopFile(docEnv);
         workArounds.initDocLint(doclintOpts.values(), tagletManager.getCustomTagNames(),
@@ -406,15 +415,15 @@
             topFile = DocPaths.overviewSummary(frames);
         } else {
             if (showModules) {
-                topFile = DocPath.empty.resolve(DocPaths.moduleSummary(modules.first()));
+                topFile = DocPath.empty.resolve(docPaths.moduleSummary(modules.first()));
             } else if (packages.size() == 1 && packages.first().isUnnamed()) {
                 List<TypeElement> classes = new ArrayList<>(getIncludedTypeElements());
                 if (!classes.isEmpty()) {
                     TypeElement te = getValidClass(classes);
-                    topFile = DocPath.forClass(utils, te);
+                    topFile = docPaths.forClass(te);
                 }
             } else if (!packages.isEmpty()) {
-                topFile = DocPath.forPackage(packages.first()).resolve(DocPaths.PACKAGE_SUMMARY);
+                topFile = docPaths.forPackage(packages.first()).resolve(DocPaths.PACKAGE_SUMMARY);
             }
         }
     }
@@ -837,6 +846,13 @@
                     }
                     return true;
                 }
+            },
+            new XOption(resources, "--no-module-directories") {
+                @Override
+                public boolean process(String option, List<String> args) {
+                    useModuleDirectories = false;
+                    return true;
+                }
             }
         };
         Set<Doclet.Option> oset = new TreeSet<>();