src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlConfiguration.java
--- 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<>();