changeset 57844:981f6982717a

8237845: Encapsulate doclet options Reviewed-by: hannesw, prappo
author jjg
date Mon, 27 Jan 2020 14:03:58 -0800
parents d8a226ce60cc
children 4491472db2e0
files src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractMemberWriter.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractOverviewIndexWriter.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AllPackagesIndexWriter.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AnnotationTypeWriterImpl.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ClassUseWriter.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ClassWriterImpl.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/DocFilesHandlerImpl.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/FieldWriterImpl.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HelpWriter.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlConfiguration.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDoclet.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlOptions.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlSerialFieldWriter.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/IndexRedirectWriter.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/MethodWriterImpl.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleIndexWriter.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleWriterImpl.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/NestedClassWriterImpl.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageIndexWriter.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PropertyWriterImpl.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SourceToHTMLConverter.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TagletWriterImpl.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TreeWriter.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Navigation.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/AbstractDoclet.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/BaseConfiguration.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/BaseOptions.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/Messages.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/PropertyUtils.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/AnnotationTypeFieldBuilder.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/AnnotationTypeRequiredMemberBuilder.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/ConstructorBuilder.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/EnumConstantBuilder.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/FieldBuilder.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/MethodBuilder.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/ModuleSummaryBuilder.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/PackageSummaryBuilder.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/PropertyBuilder.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/SerializedFormBuilder.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/TagletManager.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/ClassTree.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/ElementListWriter.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/IndexBuilder.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/MetaKeywords.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/StandardDocFileFactory.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/TypeElementCatalog.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/VisibleMemberTable.java src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/ToolOptions.java
diffstat 50 files changed, 699 insertions(+), 239 deletions(-) [+]
line wrap: on
line diff
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractMemberWriter.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractMemberWriter.java	Mon Jan 27 14:03:58 2020 -0800
@@ -378,7 +378,7 @@
     }
 
     protected void serialWarning(Element e, String key, String a1, String a2) {
-        if (options.serialWarn) {
+        if (options.serialWarn()) {
             configuration.messages.warning(e, key, a1, a2);
         }
     }
@@ -596,7 +596,7 @@
             // Name
             HtmlTree nameSpan = new HtmlTree(HtmlTag.SPAN);
             nameSpan.setStyle(HtmlStyle.memberName);
-            if (options.linkSource) {
+            if (options.linkSource()) {
                 Content name = new StringContent(name(element));
                 writer.addSrcLink(element, name, nameSpan);
             } else {
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractOverviewIndexWriter.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AbstractOverviewIndexWriter.java	Mon Jan 27 14:03:58 2020 -0800
@@ -141,7 +141,7 @@
                 .setFooter(footer)
                 .toContent());
         printHtmlDocument(
-                configuration.metakeywords.getOverviewMetaKeywords(title, configuration.getOptions().docTitle),
+                configuration.metakeywords.getOverviewMetaKeywords(title, configuration.getOptions().docTitle()),
                 description, body);
     }
 
@@ -158,7 +158,7 @@
      * @param body the document tree to which the title will be added
      */
     protected void addConfigurationTitle(Content body) {
-        String doctitle = configuration.getOptions().docTitle;
+        String doctitle = configuration.getOptions().docTitle();
         if (!doctitle.isEmpty()) {
             Content title = new RawHtml(doctitle);
             Content heading = HtmlTree.HEADING(Headings.PAGE_TITLE_HEADING,
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AllPackagesIndexWriter.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AllPackagesIndexWriter.java	Mon Jan 27 14:03:58 2020 -0800
@@ -113,7 +113,7 @@
                 .setHeader(new TableHeader(contents.packageLabel, contents.descriptionLabel))
                 .setColumnStyles(HtmlStyle.colFirst, HtmlStyle.colLast);
         for (PackageElement pkg : configuration.packages) {
-            if (!(configuration.getOptions().noDeprecated && utils.isDeprecated(pkg))) {
+            if (!(options.noDeprecated() && utils.isDeprecated(pkg))) {
                 Content packageLinkContent = getPackageLink(pkg, getPackageName(pkg));
                 Content summaryContent = new ContentBuilder();
                 addSummaryComment(pkg, summaryContent);
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AnnotationTypeWriterImpl.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/AnnotationTypeWriterImpl.java	Mon Jan 27 14:03:58 2020 -0800
@@ -187,7 +187,7 @@
                 LinkInfoImpl.Kind.CLASS_SIGNATURE, annotationType);
         Content annotationName = new StringContent(utils.getSimpleName(annotationType));
         Content parameterLinks = getTypeParameterLinks(linkInfo);
-        if (configuration.getOptions().linkSource) {
+        if (options.linkSource()) {
             addSrcLink(annotationType, annotationName, pre);
             pre.add(parameterLinks);
         } else {
@@ -203,7 +203,7 @@
      */
     @Override
     public void addAnnotationTypeDescription(Content annotationInfoTree) {
-        if (!configuration.getOptions().noComment) {
+        if (!options.noComment()) {
             if (!utils.getFullBody(annotationType).isEmpty()) {
                 addInlineComment(annotationType, annotationInfoTree);
             }
@@ -215,7 +215,7 @@
      */
     @Override
     public void addAnnotationTypeTagInfo(Content annotationInfoTree) {
-        if (!configuration.getOptions().noComment) {
+        if (!options.noComment()) {
             addTagsInfo(annotationType, annotationInfoTree);
         }
     }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ClassUseWriter.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ClassUseWriter.java	Mon Jan 27 14:03:58 2020 -0800
@@ -159,7 +159,7 @@
      */
     public static void generate(HtmlConfiguration configuration, ClassTree classtree) throws DocFileIOException  {
         ClassUseMapper mapper = new ClassUseMapper(configuration, classtree);
-        boolean nodeprecated = configuration.getOptions().noDeprecated;
+        boolean nodeprecated = configuration.getOptions().noDeprecated();
         Utils utils = configuration.utils;
         for (TypeElement aClass : configuration.getIncludedTypeElements()) {
             // If -nodeprecated option is set and the containing package is marked
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ClassWriterImpl.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ClassWriterImpl.java	Mon Jan 27 14:03:58 2020 -0800
@@ -228,7 +228,7 @@
         linkInfo.linkToSelf = false;
         Content className = new StringContent(utils.getSimpleName(typeElement));
         Content parameterLinks = getTypeParameterLinks(linkInfo);
-        if (configuration.getOptions().linkSource) {
+        if (options.linkSource()) {
             addSrcLink(typeElement, className, pre);
             pre.add(parameterLinks);
         } else {
@@ -299,7 +299,7 @@
      */
     @Override
     public void addClassDescription(Content classInfoTree) {
-        if(!configuration.getOptions().noComment) {
+        if (!options.noComment()) {
             // generate documentation for the class.
             if (!utils.getFullBody(typeElement).isEmpty()) {
                 addInlineComment(typeElement, classInfoTree);
@@ -312,7 +312,7 @@
      */
     @Override
     public void addClassTagInfo(Content classInfoTree) {
-        if(!configuration.getOptions().noComment) {
+        if (!options.noComment()) {
             // Print Information about all the tags here
             addTagsInfo(typeElement, classInfoTree);
         }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/DocFilesHandlerImpl.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/DocFilesHandlerImpl.java	Mon Jan 27 14:03:58 2020 -0800
@@ -162,7 +162,7 @@
                     }
                 }
             } else if (srcfile.isDirectory()) {
-                if (options.copyDocfileSubdirs
+                if (options.copyDocfileSubdirs()
                         && !configuration.shouldExcludeDocFileDir(srcfile.getName())) {
                     DocPath dirDocPath = dstDocPath.resolve(srcfile.getName());
                     copyDirectory(srcfile, dirDocPath, first);
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/FieldWriterImpl.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/FieldWriterImpl.java	Mon Jan 27 14:03:58 2020 -0800
@@ -201,7 +201,7 @@
         Content classLink = writer.getPreQualifiedClassLink(
                 LinkInfoImpl.Kind.MEMBER, typeElement, false);
         Content label;
-        if (options.summarizeOverriddenMethods) {
+        if (options.summarizeOverriddenMethods()) {
             label = new StringContent(utils.isClass(typeElement)
                     ? resources.getText("doclet.Fields_Declared_In_Class")
                     : resources.getText("doclet.Fields_Declared_In_Interface"));
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HelpWriter.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HelpWriter.java	Mon Jan 27 14:03:58 2020 -0800
@@ -132,7 +132,7 @@
         ul.setStyle(HtmlStyle.blockList);
 
         // Overview
-        if (options.createOverview) {
+        if (options.createOverview()) {
             Content overviewHeading = HtmlTree.HEADING(Headings.CONTENT_HEADING,
                 contents.overviewLabel);
             htmlTree = HtmlTree.SECTION(HtmlStyle.helpSection, overviewHeading);
@@ -246,7 +246,7 @@
         ul.add(HtmlTree.LI(HtmlStyle.blockList, htmlTree));
 
         // Class Use
-        if (options.classUse) {
+        if (options.classUse()) {
             Content useHead = HtmlTree.HEADING(Headings.CONTENT_HEADING,
                     contents.getContent("doclet.help.use.head"));
             htmlTree = HtmlTree.SECTION(HtmlStyle.helpSection, useHead);
@@ -257,7 +257,7 @@
         }
 
         // Tree
-        if (options.createTree) {
+        if (options.createTree()) {
             Content treeHead = HtmlTree.HEADING(Headings.CONTENT_HEADING,
                     contents.getContent("doclet.help.tree.head"));
             htmlTree = HtmlTree.SECTION(HtmlStyle.helpSection, treeHead);
@@ -275,7 +275,7 @@
         }
 
         // Deprecated
-        if (!(options.noDeprecatedList || options.noDeprecated)) {
+        if (!(options.noDeprecatedList() || options.noDeprecated())) {
             Content dHead = HtmlTree.HEADING(Headings.CONTENT_HEADING,
                     contents.deprecatedAPI);
             htmlTree = HtmlTree.SECTION(HtmlStyle.helpSection, dHead);
@@ -288,9 +288,9 @@
         }
 
         // Index
-        if (options.createIndex) {
+        if (options.createIndex()) {
             Content indexlink;
-            if (options.splitIndex) {
+            if (options.splitIndex()) {
                 indexlink = links.createLink(DocPaths.INDEX_FILES.resolve(DocPaths.indexN(1)),
                         resources.getText("doclet.Index"));
             } else {
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlConfiguration.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlConfiguration.java	Mon Jan 27 14:03:58 2020 -0800
@@ -188,7 +188,7 @@
         docPaths = new DocPaths(utils);
         setCreateOverview();
         setTopFile(docEnv);
-        workArounds.initDocLint(options.doclintOpts.values(), tagletManager.getAllTagletNames());
+        workArounds.initDocLint(options.doclintOpts().values(), tagletManager.getAllTagletNames());
         return true;
     }
 
@@ -206,7 +206,7 @@
         if (!checkForDeprecation(docEnv)) {
             return;
         }
-        if (options.createOverview) {
+        if (options.createOverview()) {
             topFile = DocPaths.INDEX;
         } else {
             if (showModules) {
@@ -224,7 +224,7 @@
     }
 
     protected TypeElement getValidClass(List<TypeElement> classes) {
-        if (!options.noDeprecated) {
+        if (!options.noDeprecated()) {
             return classes.get(0);
         }
         for (TypeElement te : classes) {
@@ -246,14 +246,14 @@
 
     /**
      * Generate "overview.html" page if option "-overview" is used or number of
-     * packages is more than one. Sets {@link HtmlOptions#createOverview} field to true.
+     * packages is more than one. Sets {@code HtmlOptions.createOverview} field to true.
      */
     protected void setCreateOverview() {
-        if (!options.noOverview) {
-            if (options.overviewPath != null
+        if (!options.noOverview()) {
+            if (options.overviewPath() != null
                     || modules.size() > 1
                     || (modules.isEmpty() && packages.size() > 1)) {
-                options.createOverview = true;
+                options.setCreateOverview(true);
             }
         }
     }
@@ -283,7 +283,7 @@
      */
     @Override
     public JavaFileObject getOverviewPath() {
-        String overviewpath = options.overviewPath;
+        String overviewpath = options.overviewPath();
         if (overviewpath != null && getFileManager() instanceof StandardJavaFileManager) {
             StandardJavaFileManager fm = (StandardJavaFileManager) getFileManager();
             return fm.getJavaFileObjects(overviewpath).iterator().next();
@@ -292,7 +292,7 @@
     }
 
     public DocPath getMainStylesheet() {
-        String stylesheetfile = options.stylesheetFile;
+        String stylesheetfile = options.stylesheetFile();
         if(!stylesheetfile.isEmpty()){
             DocFile docFile = DocFile.createFileForInput(this, stylesheetfile);
             return DocPath.create(docFile.getName());
@@ -301,7 +301,7 @@
     }
 
     public List<DocPath> getAdditionalStylesheets() {
-        return options.additionalStylesheets.stream()
+        return options.additionalStylesheets().stream()
                 .map(ssf -> DocFile.createFileForInput(this, ssf)).map(file -> DocPath.create(file.getName()))
                 .collect(Collectors.toList());
     }
@@ -342,16 +342,18 @@
 
     @Override
     protected boolean finishOptionSettings0() throws DocletException {
-        if (options.docEncoding == null) {
-            if (options.charset == null) {
-                options.docEncoding = options.charset = (options.encoding == null) ? HTML_DEFAULT_CHARSET : options.encoding;
+        if (options.docEncoding() == null) {
+            if (options.charset() == null) {
+                String charset = (options.encoding() == null) ? HTML_DEFAULT_CHARSET : options.encoding();
+                options.setCharset(charset);
+                options.setDocEncoding((options.charset()));
             } else {
-                options.docEncoding = options.charset;
+                options.setDocEncoding(options.charset());
             }
         } else {
-            if (options.charset == null) {
-                options.charset = options.docEncoding;
-            } else if (!options.charset.equals(options.docEncoding)) {
+            if (options.charset() == null) {
+                options.setCharset(options.docEncoding());
+            } else if (!options.charset().equals(options.docEncoding())) {
                 reporter.print(ERROR, resources.getText("doclet.Option_conflict", "-charset", "-docencoding"));
                 return false;
             }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDoclet.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDoclet.java	Mon Jan 27 14:03:58 2020 -0800
@@ -109,7 +109,7 @@
             throws DocletException {
         super.generateOtherFiles(docEnv, classtree);
         HtmlOptions options = configuration.getOptions();
-        if (options.linkSource) {
+        if (options.linkSource()) {
             SourceToHTMLConverter.convertRoot(configuration,
                 docEnv, DocPaths.SOURCE_OUTPUT);
         }
@@ -120,27 +120,27 @@
             messages.error("doclet.No_Non_Deprecated_Classes_To_Document");
             return;
         }
-        boolean nodeprecated = options.noDeprecated;
-        performCopy(options.helpFile);
-        performCopy(options.stylesheetFile);
-        for (String stylesheet : options.additionalStylesheets) {
+        boolean nodeprecated = options.noDeprecated();
+        performCopy(options.helpFile());
+        performCopy(options.stylesheetFile());
+        for (String stylesheet : options.additionalStylesheets()) {
             performCopy(stylesheet);
         }
         // do early to reduce memory footprint
-        if (options.classUse) {
+        if (options.classUse()) {
             ClassUseWriter.generate(configuration, classtree);
         }
         IndexBuilder indexbuilder = new IndexBuilder(configuration, nodeprecated);
 
-        if (options.createTree) {
+        if (options.createTree()) {
             TreeWriter.generate(configuration, classtree);
         }
 
-        if (!(options.noDeprecatedList || nodeprecated)) {
+        if (!(options.noDeprecatedList() || nodeprecated)) {
             DeprecatedListWriter.generate(configuration);
         }
 
-        if (options.createOverview) {
+        if (options.createOverview()) {
             if (configuration.showModules) {
                 ModuleIndexWriter.generate(configuration);
             } else {
@@ -148,9 +148,9 @@
             }
         }
 
-        if (options.createIndex) {
+        if (options.createIndex()) {
             configuration.buildSearchTagIndex();
-            if (options.splitIndex) {
+            if (options.splitIndex()) {
                 SplitIndexWriter.generate(configuration, indexbuilder);
             } else {
                 SingleIndexWriter.generate(configuration, indexbuilder);
@@ -163,25 +163,25 @@
             SystemPropertiesWriter.generate(configuration);
         }
 
-        if (options.createOverview) {
+        if (options.createOverview()) {
             IndexRedirectWriter.generate(configuration, DocPaths.OVERVIEW_SUMMARY, DocPaths.INDEX);
         } else {
             IndexRedirectWriter.generate(configuration);
         }
 
-        if (options.helpFile.isEmpty() && !options.noHelp) {
+        if (options.helpFile().isEmpty() && !options.noHelp()) {
             HelpWriter.generate(configuration);
         }
         // If a stylesheet file is not specified, copy the default stylesheet
         // and replace newline with platform-specific newline.
         DocFile f;
-        if (options.stylesheetFile.length() == 0) {
+        if (options.stylesheetFile().length() == 0) {
             f = DocFile.createFileForOutput(configuration, DocPaths.STYLESHEET);
             f.copyResource(DocPaths.RESOURCES.resolve(DocPaths.STYLESHEET), true, true);
         }
         f = DocFile.createFileForOutput(configuration, DocPaths.JAVASCRIPT);
         f.copyResource(DocPaths.RESOURCES.resolve(DocPaths.JAVASCRIPT), true, true);
-        if (options.createIndex) {
+        if (options.createIndex()) {
             f = DocFile.createFileForOutput(configuration, DocPaths.SEARCH_JS);
             f.copyResource(DOCLET_RESOURCES.resolve(DocPaths.SEARCH_JS), true, true);
 
@@ -280,12 +280,12 @@
             // if -nodeprecated option is set and the package is marked as
             // deprecated, do not generate the package-summary.html, package-frame.html
             // and package-tree.html pages for that package.
-            if (!(options.noDeprecated && utils.isDeprecated(pkg))) {
+            if (!(options.noDeprecated() && utils.isDeprecated(pkg))) {
                 AbstractBuilder packageSummaryBuilder =
                         configuration.getBuilderFactory().getPackageSummaryBuilder(pkg);
                 packageSummaryBuilder.build();
-                if (options.createTree) {
-                    PackageTreeWriter.generate(configuration, pkg, options.noDeprecated);
+                if (options.createTree()) {
+                    PackageTreeWriter.generate(configuration, pkg, options.noDeprecated());
                 }
             }
         }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlDocletWriter.java	Mon Jan 27 14:03:58 2020 -0800
@@ -262,9 +262,9 @@
             // append htmlstr up to start of next {@docroot}
             buf.append(htmlstr.substring(prevEnd, match));
             prevEnd = docrootMatcher.end();
-            if (options.docrootParent.length() > 0 && htmlstr.startsWith("/..", prevEnd)) {
+            if (options.docrootParent().length() > 0 && htmlstr.startsWith("/..", prevEnd)) {
                 // Insert the absolute link if {@docRoot} is followed by "/..".
-                buf.append(options.docrootParent);
+                buf.append(options.docrootParent());
                 prevEnd += 3;
             } else {
                 // Insert relative path where {@docRoot} was located
@@ -342,7 +342,7 @@
      * @param htmltree the documentation tree to which the tags will be added
      */
     protected void addTagsInfo(Element e, Content htmltree) {
-        if (options.noComment) {
+        if (options.noComment()) {
             return;
         }
         Content dl = new HtmlTree(HtmlTag.DL);
@@ -451,14 +451,14 @@
         List<DocPath> additionalStylesheets = configuration.getAdditionalStylesheets();
         additionalStylesheets.addAll(localStylesheets);
         Head head = new Head(path, configuration.docletVersion, configuration.startTime)
-                .setTimestamp(!options.noTimestamp)
+                .setTimestamp(!options.noTimestamp())
                 .setDescription(description)
                 .setGenerator(getGenerator(getClass()))
                 .setTitle(winTitle)
-                .setCharset(options.charset)
+                .setCharset(options.charset())
                 .addKeywords(metakeywords)
                 .setStylesheets(configuration.getMainStylesheet(), additionalStylesheets)
-                .setIndex(options.createIndex, mainBodyScript)
+                .setIndex(options.createIndex(), mainBodyScript)
                 .addContent(extraHeadContent);
 
         Content htmlTree = HtmlTree.HTML(configuration.getLocale().getLanguage(), head.toContent(), body);
@@ -473,8 +473,8 @@
      * @return the window title string
      */
     public String getWindowTitle(String title) {
-        if (options.windowTitle.length() > 0) {
-            title += " (" + options.windowTitle + ")";
+        if (options.windowTitle().length() > 0) {
+            title += " (" + options.windowTitle() + ")";
         }
         return title;
     }
@@ -488,12 +488,12 @@
     public Content getUserHeaderFooter(boolean header) {
         String content;
         if (header) {
-            content = replaceDocRootDir(options.header);
+            content = replaceDocRootDir(options.header());
         } else {
-            if (options.footer.length() != 0) {
-                content = replaceDocRootDir(options.footer);
+            if (options.footer().length() != 0) {
+                content = replaceDocRootDir(options.footer());
             } else {
-                content = replaceDocRootDir(options.header);
+                content = replaceDocRootDir(options.header());
             }
         }
         Content rawContent = new RawHtml(content);
@@ -506,7 +506,7 @@
      * @param htmlTree the content tree to which user specified top will be added
      */
     public void addTop(Content htmlTree) {
-        Content top = new RawHtml(replaceDocRootDir(options.top));
+        Content top = new RawHtml(replaceDocRootDir(options.top()));
         htmlTree.add(top);
     }
 
@@ -516,7 +516,7 @@
      * @param htmlTree the content tree to which user specified bottom will be added
      */
     public void addBottom(Content htmlTree) {
-        Content bottom = new RawHtml(replaceDocRootDir(options.bottom));
+        Content bottom = new RawHtml(replaceDocRootDir(options.bottom()));
         Content small = HtmlTree.SMALL(bottom);
         Content p = HtmlTree.P(HtmlStyle.legalCopy, small);
         htmlTree.add(p);
@@ -1262,7 +1262,7 @@
      */
     private void addCommentTags(Element element, DocTree holderTag, List<? extends DocTree> tags, boolean depr,
             boolean first, boolean inSummary, Content htmltree) {
-        if (options.noComment){
+        if (options.noComment()){
             return;
         }
         Content div;
@@ -1423,8 +1423,8 @@
                     for (DocTree dt : node.getValue()) {
                         if (utils.isText(dt) && isHRef) {
                             String text = ((TextTree) dt).getBody();
-                            if (text.startsWith("/..") && !options.docrootParent.isEmpty()) {
-                                result.add(options.docrootParent);
+                            if (text.startsWith("/..") && !options.docrootParent().isEmpty()) {
+                                result.add(options.docrootParent());
                                 docRootContent = new ContentBuilder();
                                 result.add(textCleanup(text.substring(3), isLastNode));
                             } else {
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlOptions.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlOptions.java	Mon Jan 27 14:03:58 2020 -0800
@@ -51,140 +51,146 @@
  * including the format-independent options handled
  * by {@link BaseOptions}.
  *
+ * <p>Some of the methods used to access the values of options
+ * have names that begin with a verb, such as {@link #createOverview}
+ * or {@link #splitIndex}. Unless otherwise stated,
+ * these methods should all be taken as just accessing the value
+ * of the associated option.
+ *
  */
 public class HtmlOptions extends BaseOptions {
     //<editor-fold desc="Option values">
     /**
      * Argument for command-line option {@code --add-stylesheet}.
      */
-    public List<String> additionalStylesheets = new ArrayList<>();
+    private List<String> additionalStylesheets = new ArrayList<>();
 
     /**
      * Argument for command-line option {@code -bottom}.
      */
-    public String bottom = "";
+    private String bottom = "";
 
     /**
      * Argument for command-line option {@code -charset}.
      * The META charset tag used for cross-platform viewing.
      */
-    public String charset = null;
+    private String charset = null;
 
     /**
      * Argument for command-line option {@code -use}.
      * True if command-line option "-use" is used. Default value is false.
      */
-    public boolean classUse = false;
+    private boolean classUse = false;
 
     /**
      * Argument for command-line option {@code -noindex}.
      * False if command-line option "-noindex" is used. Default value is true.
      */
-    public boolean createIndex = true;
+    private boolean createIndex = true;
 
     /**
      * Argument for command-line option {@code -overview}.
      * This is true if option "-overview" is used or option "-overview" is not
      * used and number of packages is more than one.
      */
-    public boolean createOverview = false;
+    private boolean createOverview = false;
 
     /**
      * Argument for command-line option {@code -notree}.
      * False if command-line option "-notree" is used. Default value is true.
      */
-    public boolean createTree = true;
+    private boolean createTree = true;
 
     /**
      * Arguments for command-line option {@code -Xdoclint} and friends.
      * Collected set of doclint options.
      */
-    public Map<Doclet.Option, String> doclintOpts = new LinkedHashMap<>();
+    private Map<Doclet.Option, String> doclintOpts = new LinkedHashMap<>();
 
     /**
      * Argument for command-line option {@code -Xdocrootparent}.
      */
-    public String docrootParent = "";
+    private String docrootParent = "";
 
     /**
      * Argument for command-line option {@code -doctitle}.
      */
-    public String docTitle = "";
+    private String docTitle = "";
 
 
     /**
      * Argument for command-line option {@code -footer}.
      */
-    public String footer = "";
+    private String footer = "";
 
     /**
      * Argument for command-line option {@code -header}.
      */
-    public String header = "";
+    private String header = "";
 
     /**
      * Argument for command-line option {@code -helpfile}.
      */
-    public String helpFile = "";
+    private String helpFile = "";
 
     /**
      * Argument for command-line option {@code -nodeprecated}.
      * True if command-line option "-nodeprecated" is used. Default value is
      * false.
      */
-    public boolean noDeprecatedList = false;
+    private boolean noDeprecatedList = false;
 
     /**
      * Argument for command-line option {@code -nohelp}.
      * True if command-line option "-nohelp" is used. Default value is false.
      */
-    public boolean noHelp = false;
+    private boolean noHelp = false;
 
     /**
      * Argument for command-line option {@code -nonavbar}.
      * True if command-line option "-nonavbar" is used. Default value is false.
      */
-    public boolean noNavbar = false;
+    private boolean noNavbar = false;
 
     /**
      * Argument for command-line option {@code -nooverview}.
      * True if command-line option "-nooverview" is used. Default value is
      * false
      */
-    boolean noOverview = false;
+    private boolean noOverview = false;
 
     /**
      * Argument for command-line option {@code -overview}.
      * The overview path specified with "-overview" flag.
      */
-    public String overviewPath = null;
+    private String overviewPath = null;
 
     /**
      * Argument for command-line option {@code -packagesheader}.
      */
-    public String packagesHeader = "";
+    private String packagesHeader = "";
 
     /**
      * Argument for command-line option {@code -splitindex}.
      * True if command-line option "-splitindex" is used. Default value is
      * false.
      */
-    public boolean splitIndex = false;
+    private boolean splitIndex = false;
 
     /**
      * Argument for command-line option {@code -stylesheetfile}.
      */
-    public String stylesheetFile = "";
+    private String stylesheetFile = "";
 
     /**
      * Argument for command-line option {@code -top}.
      */
-    public String top = "";
+    private String top = "";
 
     /**
      * Argument for command-line option {@code -windowtitle}.
      */
-    public String windowTitle = "";
+    private String windowTitle = "";
     //</editor-fold>
 
     private HtmlConfiguration config;
@@ -516,4 +522,188 @@
         return true;
     }
 
+    /**
+     * Argument for command-line option {@code --add-stylesheet}.
+     */
+    List<String> additionalStylesheets() {
+        return additionalStylesheets;
+    }
+
+    /**
+     * Argument for command-line option {@code -bottom}.
+     */
+    String bottom() {
+        return bottom;
+    }
+
+    /**
+     * Argument for command-line option {@code -charset}.
+     * The META charset tag used for cross-platform viewing.
+     */
+    String charset() {
+        return charset;
+    }
+
+    void setCharset(String charset) {
+        this.charset = charset;
+    }
+
+    /**
+     * Argument for command-line option {@code -use}.
+     * True if command-line option "-use" is used. Default value is false.
+     */
+    public boolean classUse() {
+        return classUse;
+    }
+
+    /**
+     * Argument for command-line option {@code -noindex}.
+     * False if command-line option "-noindex" is used. Default value is true.
+     */
+    public boolean createIndex() {
+        return createIndex;
+    }
+
+    /**
+     * Argument for command-line option {@code -overview}.
+     * This is true if option "-overview" is used or option "-overview" is not
+     * used and number of packages is more than one.
+     */
+    public boolean createOverview() {
+        return createOverview;
+    }
+
+    public void setCreateOverview(boolean createOverview) {
+        this.createOverview = createOverview;
+    }
+
+    /**
+     * Argument for command-line option {@code -notree}.
+     * False if command-line option "-notree" is used. Default value is true.
+     */
+    public boolean createTree() {
+        return createTree;
+    }
+
+    /**
+     * Arguments for command-line option {@code -Xdoclint} and friends.
+     * Collected set of doclint options.
+     */
+    Map<Doclet.Option, String> doclintOpts() {
+        return doclintOpts;
+    }
+
+    /**
+     * Argument for command-line option {@code -Xdocrootparent}.
+     */
+    String docrootParent() {
+        return docrootParent;
+    }
+
+    /**
+     * Argument for command-line option {@code -doctitle}.
+     */
+    String docTitle() {
+        return docTitle;
+    }
+
+    /**
+     * Argument for command-line option {@code -footer}.
+     */
+    String footer() {
+        return footer;
+    }
+
+    /**
+     * Argument for command-line option {@code -header}.
+     */
+    String header() {
+        return header;
+    }
+
+    /**
+     * Argument for command-line option {@code -helpfile}.
+     */
+    public String helpFile() {
+        return helpFile;
+    }
+
+    /**
+     * Argument for command-line option {@code -nodeprecated}.
+     * True if command-line option "-nodeprecated" is used. Default value is
+     * false.
+     */
+    public boolean noDeprecatedList() {
+        return noDeprecatedList;
+    }
+
+    /**
+     * Argument for command-line option {@code -nohelp}.
+     * True if command-line option "-nohelp" is used. Default value is false.
+     */
+    public boolean noHelp() {
+        return noHelp;
+    }
+
+    /**
+     * Argument for command-line option {@code -nonavbar}.
+     * True if command-line option "-nonavbar" is used. Default value is false.
+     */
+    public boolean noNavbar() {
+        return noNavbar;
+    }
+
+    /**
+     * Argument for command-line option {@code -nooverview}.
+     * True if command-line option "-nooverview" is used. Default value is
+     * false
+     */
+    boolean noOverview() {
+        return noOverview;
+    }
+
+    /**
+     * Argument for command-line option {@code -overview}.
+     * The overview path specified with "-overview" flag.
+     */
+    String overviewPath() {
+        return overviewPath;
+    }
+
+    /**
+     * Argument for command-line option {@code -packagesheader}.
+     */
+    String packagesHeader() {
+        return packagesHeader;
+    }
+
+    /**
+     * Argument for command-line option {@code -splitindex}.
+     * True if command-line option "-splitindex" is used. Default value is
+     * false.
+     */
+    public boolean splitIndex() {
+        return splitIndex;
+    }
+
+    /**
+     * Argument for command-line option {@code -stylesheetfile}.
+     */
+    String stylesheetFile() {
+        return stylesheetFile;
+    }
+
+    /**
+     * Argument for command-line option {@code -top}.
+     */
+    String top() {
+        return top;
+    }
+
+    /**
+     * Argument for command-line option {@code -windowtitle}.
+     */
+    String windowTitle() {
+        return windowTitle;
+    }
 }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlSerialFieldWriter.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/HtmlSerialFieldWriter.java	Mon Jan 27 14:03:58 2020 -0800
@@ -207,7 +207,7 @@
      * @return true if overview details need to be printed
      */
     public boolean shouldPrintOverview(VariableElement field) {
-        if (!options.noComment) {
+        if (!options.noComment()) {
             if(!utils.getFullBody(field).isEmpty() ||
                     writer.hasSerializationOverviewTags(field))
                 return true;
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/IndexRedirectWriter.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/IndexRedirectWriter.java	Mon Jan 27 14:03:58 2020 -0800
@@ -75,18 +75,18 @@
     private void generateIndexFile() throws DocFileIOException {
         Content htmlComment = contents.newPage;
         Head head = new Head(path, configuration.docletVersion, configuration.startTime)
-                .setTimestamp(!options.noTimestamp)
+                .setTimestamp(!options.noTimestamp())
                 .setDescription("index redirect")
                 .setGenerator(getGenerator(getClass()))
                 .setStylesheets(configuration.getMainStylesheet(), Collections.emptyList()) // avoid reference to default stylesheet
                 .addDefaultScript(false);
 
-        String title = (options.windowTitle.length() > 0)
-                ? options.windowTitle
+        String title = (options.windowTitle().length() > 0)
+                ? options.windowTitle()
                 : resources.getText("doclet.Generated_Docs_Untitled");
 
         head.setTitle(title)
-                .setCharset(options.charset)
+                .setCharset(options.charset())
                 .setCanonicalLink(target);
 
         String targetPath = target.getPath();
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/MethodWriterImpl.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/MethodWriterImpl.java	Mon Jan 27 14:03:58 2020 -0800
@@ -253,7 +253,7 @@
         Content classLink = writer.getPreQualifiedClassLink(
                 LinkInfoImpl.Kind.MEMBER, typeElement, false);
         Content label;
-        if (options.summarizeOverriddenMethods) {
+        if (options.summarizeOverriddenMethods()) {
             label = new StringContent(utils.isClass(typeElement)
                     ? resources.getText("doclet.Methods_Declared_In_Class")
                     : resources.getText("doclet.Methods_Declared_In_Interface"));
@@ -285,7 +285,7 @@
      */
     protected static void addOverridden(HtmlDocletWriter writer,
             TypeMirror overriddenType, ExecutableElement method, Content dl) {
-        if (writer.options.noComment) {
+        if (writer.options.noComment()) {
             return;
         }
         Utils utils = writer.utils;
@@ -336,7 +336,7 @@
     protected static void addImplementsInfo(HtmlDocletWriter writer,
             ExecutableElement method, Content dl) {
         Utils utils = writer.utils;
-        if (utils.isStatic(method) || writer.options.noComment) {
+        if (utils.isStatic(method) || writer.options.noComment()) {
             return;
         }
         Contents contents = writer.contents;
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleIndexWriter.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleIndexWriter.java	Mon Jan 27 14:03:58 2020 -0800
@@ -108,7 +108,7 @@
 
             for (ModuleElement mdle : modules) {
                 if (!mdle.isUnnamed()) {
-                    if (!(options.noDeprecated && utils.isDeprecated(mdle))) {
+                    if (!(options.noDeprecated() && utils.isDeprecated(mdle))) {
                         Content moduleLinkContent = getModuleLink(mdle, new StringContent(mdle.getQualifiedName().toString()));
                         Content summaryContent = new ContentBuilder();
                         addSummaryComment(mdle, summaryContent);
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleWriterImpl.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/ModuleWriterImpl.java	Mon Jan 27 14:03:58 2020 -0800
@@ -188,7 +188,7 @@
         HtmlTree bodyTree = getBody(getWindowTitle(mdle.getQualifiedName().toString()));
         Content headerContent = new ContentBuilder();
         addTop(headerContent);
-        navBar.setDisplaySummaryModuleDescLink(!utils.getFullBody(mdle).isEmpty() && !options.noComment);
+        navBar.setDisplaySummaryModuleDescLink(!utils.getFullBody(mdle).isEmpty() && !options.noComment());
         navBar.setDisplaySummaryModulesLink(display(requires) || display(indirectModules));
         navBar.setDisplaySummaryPackagesLink(display(packages) || display(indirectPackages)
                 || display(indirectOpenPackages));
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/NestedClassWriterImpl.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/NestedClassWriterImpl.java	Mon Jan 27 14:03:58 2020 -0800
@@ -122,7 +122,7 @@
         Content classLink = writer.getPreQualifiedClassLink(
                 LinkInfoImpl.Kind.MEMBER, typeElement, false);
         Content label;
-        if (options.summarizeOverriddenMethods) {
+        if (options.summarizeOverriddenMethods()) {
             label = new StringContent(utils.isInterface(typeElement)
                     ? resources.getText("doclet.Nested_Classes_Interfaces_Declared_In_Interface")
                     : resources.getText("doclet.Nested_Classes_Interfaces_Declared_In_Class"));
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageIndexWriter.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PackageIndexWriter.java	Mon Jan 27 14:03:58 2020 -0800
@@ -109,7 +109,7 @@
 
             for (PackageElement pkg : configuration.packages) {
                 if (!pkg.isUnnamed()) {
-                    if (!(options.noDeprecated && utils.isDeprecated(pkg))) {
+                    if (!(options.noDeprecated() && utils.isDeprecated(pkg))) {
                         Content packageLinkContent = getPackageLink(pkg, getPackageName(pkg));
                         Content summaryContent = new ContentBuilder();
                         addSummaryComment(pkg, summaryContent);
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PropertyWriterImpl.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/PropertyWriterImpl.java	Mon Jan 27 14:03:58 2020 -0800
@@ -213,7 +213,7 @@
         Content classLink = writer.getPreQualifiedClassLink(
                 LinkInfoImpl.Kind.MEMBER, typeElement, false);
         Content label;
-        if (options.summarizeOverriddenMethods) {
+        if (options.summarizeOverriddenMethods()) {
             label = new StringContent(utils.isClass(typeElement)
                     ? resources.getText("doclet.Properties_Declared_In_Class")
                     : resources.getText("doclet.Properties_Declared_In_Interface"));
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SourceToHTMLConverter.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/SourceToHTMLConverter.java	Mon Jan 27 14:03:58 2020 -0800
@@ -124,20 +124,20 @@
         for (ModuleElement mdl : configuration.getSpecifiedModuleElements()) {
             // If -nodeprecated option is set and the module is marked as deprecated,
             // do not convert the module files to HTML.
-            if (!(options.noDeprecated && utils.isDeprecated(mdl)))
+            if (!(options.noDeprecated() && utils.isDeprecated(mdl)))
                 convertModule(mdl, outputdir);
         }
         for (PackageElement pkg : configuration.getSpecifiedPackageElements()) {
             // If -nodeprecated option is set and the package is marked as deprecated,
             // do not convert the package files to HTML.
-            if (!(options.noDeprecated && utils.isDeprecated(pkg)))
+            if (!(options.noDeprecated() && utils.isDeprecated(pkg)))
                 convertPackage(pkg, outputdir);
         }
         for (TypeElement te : configuration.getSpecifiedTypeElements()) {
             // If -nodeprecated option is set and the class is marked as deprecated
             // or the containing package is deprecated, do not convert the
             // package files to HTML.
-            if (!(options.noDeprecated &&
+            if (!(options.noDeprecated() &&
                   (utils.isDeprecated(te) || utils.isDeprecated(utils.containingPackage(te)))))
                 convertClass(te, outputdir);
         }
@@ -161,7 +161,7 @@
             // do not convert the package files to HTML. We do not check for
             // containing package deprecation since it is already check in
             // the calling method above.
-            if (!(options.noDeprecated && utils.isDeprecated(te)))
+            if (!(options.noDeprecated() && utils.isDeprecated(te)))
                 convertClass((TypeElement)te, outputdir);
         }
     }
@@ -181,7 +181,7 @@
         }
         for (Element elem : mdl.getEnclosedElements()) {
             if (elem instanceof PackageElement && configuration.docEnv.isIncluded(elem)
-                    && !(options.noDeprecated && utils.isDeprecated(elem))) {
+                    && !(options.noDeprecated() && utils.isDeprecated(elem))) {
                 convertPackage((PackageElement) elem, outputdir);
             }
         }
@@ -258,7 +258,7 @@
      * @param head an HtmlTree to which the stylesheet links will be added
      */
     public void addStyleSheetProperties(Content head) {
-        String filename = options.stylesheetFile;
+        String filename = options.stylesheetFile();
         DocPath stylesheet;
         if (filename.length() > 0) {
             DocFile file = DocFile.createFileForInput(configuration, filename);
@@ -273,7 +273,7 @@
     }
 
     protected void addStylesheets(Content tree) {
-        List<String> stylesheets = options.additionalStylesheets;
+        List<String> stylesheets = options.additionalStylesheets();
         if (!stylesheets.isEmpty()) {
             stylesheets.forEach((ssheet) -> {
                 DocFile file = DocFile.createFileForInput(configuration, ssheet);
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TagletWriterImpl.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TagletWriterImpl.java	Mon Jan 27 14:03:58 2020 -0800
@@ -440,7 +440,7 @@
                 anchorName += "-" + count;
             }
             result = HtmlTree.SPAN(anchorName, HtmlStyle.searchTagResult, new StringContent(tagText));
-            if (options.createIndex && !tagText.isEmpty()) {
+            if (options.createIndex() && !tagText.isEmpty()) {
                 SearchIndexItem si = new SearchIndexItem();
                 si.setSystemProperty(isSystemProperty);
                 si.setLabel(tagText);
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TreeWriter.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/TreeWriter.java	Mon Jan 27 14:03:58 2020 -0800
@@ -155,7 +155,7 @@
                 // is set and the package is marked as deprecated, do not include
                 // the page in the list of package hierarchies.
                 if (pkg.isUnnamed() ||
-                        (options.noDeprecated && utils.isDeprecated(pkg))) {
+                        (options.noDeprecated() && utils.isDeprecated(pkg))) {
                     i++;
                     continue;
                 }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Navigation.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/formats/html/markup/Navigation.java	Mon Jan 27 14:03:58 2020 -0800
@@ -203,11 +203,11 @@
     private void addMainNavLinks(Content tree) {
         switch (documentedPage) {
             case OVERVIEW:
-                addActivePageLink(tree, contents.overviewLabel, options.createOverview);
+                addActivePageLink(tree, contents.overviewLabel, options.createOverview());
                 addModuleLink(tree);
                 addPackageLink(tree);
                 addPageLabel(tree, contents.classLabel, true);
-                addPageLabel(tree, contents.useLabel, options.classUse);
+                addPageLabel(tree, contents.useLabel, options.classUse());
                 addTreeLink(tree);
                 addDeprecatedLink(tree);
                 addIndexLink(tree);
@@ -218,7 +218,7 @@
                 addActivePageLink(tree, contents.moduleLabel, configuration.showModules);
                 addPackageLink(tree);
                 addPageLabel(tree, contents.classLabel, true);
-                addPageLabel(tree, contents.useLabel, options.classUse);
+                addPageLabel(tree, contents.useLabel, options.classUse());
                 addTreeLink(tree);
                 addDeprecatedLink(tree);
                 addIndexLink(tree);
@@ -229,11 +229,11 @@
                 addModuleOfElementLink(tree);
                 addActivePageLink(tree, contents.packageLabel, true);
                 addPageLabel(tree, contents.classLabel, true);
-                if (options.classUse) {
+                if (options.classUse()) {
                     addContentToTree(tree, links.createLink(DocPaths.PACKAGE_USE,
                             contents.useLabel, "", ""));
                 }
-                if (options.createTree) {
+                if (options.createTree()) {
                     addContentToTree(tree, links.createLink(DocPaths.PACKAGE_TREE,
                             contents.treeLabel, "", ""));
                 }
@@ -246,11 +246,11 @@
                 addModuleOfElementLink(tree);
                 addPackageSummaryLink(tree);
                 addActivePageLink(tree, contents.classLabel, true);
-                if (options.classUse) {
+                if (options.classUse()) {
                     addContentToTree(tree, links.createLink(DocPaths.CLASS_USE.resolve(path.basename()),
                             contents.useLabel));
                 }
-                if (options.createTree) {
+                if (options.createTree()) {
                     addContentToTree(tree, links.createLink(DocPaths.PACKAGE_TREE,
                             contents.treeLabel, "", ""));
                 }
@@ -268,7 +268,7 @@
                     addPackageOfElementLink(tree);
                     addContentToTree(tree, navLinkClass);
                 }
-                addActivePageLink(tree, contents.useLabel, options.classUse);
+                addActivePageLink(tree, contents.useLabel, options.classUse());
                 if (element instanceof PackageElement) {
                     addContentToTree(tree, links.createLink(DocPaths.PACKAGE_TREE, contents.treeLabel));
                 } else {
@@ -290,8 +290,8 @@
                     addPackageSummaryLink(tree);
                 }
                 addPageLabel(tree, contents.classLabel, true);
-                addPageLabel(tree, contents.useLabel, options.classUse);
-                addActivePageLink(tree, contents.treeLabel, options.createTree);
+                addPageLabel(tree, contents.useLabel, options.classUse());
+                addActivePageLink(tree, contents.treeLabel, options.createTree());
                 addDeprecatedLink(tree);
                 addIndexLink(tree);
                 addHelpLink(tree);
@@ -303,21 +303,21 @@
                 addModuleLink(tree);
                 addPackageLink(tree);
                 addPageLabel(tree, contents.classLabel, true);
-                addPageLabel(tree, contents.useLabel, options.classUse);
+                addPageLabel(tree, contents.useLabel, options.classUse());
                 addTreeLink(tree);
                 if (documentedPage == PageMode.DEPRECATED) {
-                    addActivePageLink(tree, contents.deprecatedLabel, !(options.noDeprecated
-                            || options.noDeprecatedList));
+                    addActivePageLink(tree, contents.deprecatedLabel, !(options.noDeprecated()
+                            || options.noDeprecatedList()));
                 } else {
                     addDeprecatedLink(tree);
                 }
                 if (documentedPage == PageMode.INDEX) {
-                    addActivePageLink(tree, contents.indexLabel, options.createIndex);
+                    addActivePageLink(tree, contents.indexLabel, options.createIndex());
                 } else {
                     addIndexLink(tree);
                 }
                 if (documentedPage == PageMode.HELP) {
-                    addActivePageLink(tree, contents.helpLabel, !options.noHelp);
+                    addActivePageLink(tree, contents.helpLabel, !options.noHelp());
                 } else {
                     addHelpLink(tree);
                 }
@@ -331,7 +331,7 @@
                 addModuleLink(tree);
                 addPackageLink(tree);
                 addPageLabel(tree, contents.classLabel, true);
-                addPageLabel(tree, contents.useLabel, options.classUse);
+                addPageLabel(tree, contents.useLabel, options.classUse());
                 addTreeLink(tree);
                 addDeprecatedLink(tree);
                 addIndexLink(tree);
@@ -342,7 +342,7 @@
                 addModuleOfElementLink(tree);
                 addContentToTree(tree, navLinkPackage);
                 addPageLabel(tree, contents.classLabel, true);
-                addPageLabel(tree, contents.useLabel, options.classUse);
+                addPageLabel(tree, contents.useLabel, options.classUse());
                 addTreeLink(tree);
                 addDeprecatedLink(tree);
                 addIndexLink(tree);
@@ -785,7 +785,7 @@
     }
 
     private void addOverviewLink(Content tree) {
-        if (options.createOverview) {
+        if (options.createOverview()) {
             tree.add(HtmlTree.LI(links.createLink(pathToRoot.resolve(DocPaths.INDEX),
                     contents.overviewLabel, "", "")));
         }
@@ -851,7 +851,7 @@
     }
 
     private void addTreeLink(Content tree) {
-        if (options.createTree) {
+        if (options.createTree()) {
             List<PackageElement> packages = new ArrayList<>(configuration.getSpecifiedPackageElements());
             DocPath docPath = packages.size() == 1 && configuration.getSpecifiedTypeElements().isEmpty()
                     ? pathToRoot.resolve(configuration.docPaths.forPackage(packages.get(0)).resolve(DocPaths.PACKAGE_TREE))
@@ -861,16 +861,16 @@
     }
 
     private void addDeprecatedLink(Content tree) {
-        if (!(options.noDeprecated || options.noDeprecatedList)) {
+        if (!(options.noDeprecated() || options.noDeprecatedList())) {
             tree.add(HtmlTree.LI(links.createLink(pathToRoot.resolve(DocPaths.DEPRECATED_LIST),
                     contents.deprecatedLabel, "", "")));
         }
     }
 
     private void addIndexLink(Content tree) {
-        if (options.createIndex) {
+        if (options.createIndex()) {
             tree.add(HtmlTree.LI(links.createLink(pathToRoot.resolve(
-                    (options.splitIndex
+                    (options.splitIndex()
                             ? DocPaths.INDEX_FILES.resolve(DocPaths.indexN(1))
                             : DocPaths.INDEX_ALL)),
                     contents.indexLabel, "", "")));
@@ -878,8 +878,8 @@
     }
 
     private void addHelpLink(Content tree) {
-        if (!options.noHelp) {
-            String helpfile = options.helpFile;
+        if (!options.noHelp()) {
+            String helpfile = options.helpFile();
             DocPath helpfilenm;
             if (helpfile.isEmpty()) {
                 helpfilenm = DocPaths.HELP_DOC;
@@ -910,7 +910,7 @@
      * @return the navigation contents
      */
     public Content getContent(boolean top) {
-        if (options.noNavbar) {
+        if (options.noNavbar()) {
             return new ContentBuilder();
         }
         Content tree = HtmlTree.NAV();
@@ -955,7 +955,7 @@
         addDetailLinks(ulNavDetail);
         div.add(ulNavDetail);
         subDiv.add(div);
-        if (top && options.createIndex) {
+        if (top && options.createIndex()) {
             addSearch(subDiv);
         }
         tree.add(subDiv);
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/AbstractDoclet.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/AbstractDoclet.java	Mon Jan 27 14:03:58 2020 -0800
@@ -126,16 +126,16 @@
                     messages.error("doclet.exception.write.file",
                             e.fileName.getPath(), e.getCause());
             }
-            dumpStack(options.dumpOnError, e);
+            dumpStack(options.dumpOnError(), e);
 
         } catch (ResourceIOException e) {
             messages.error("doclet.exception.read.resource",
                     e.resource.getPath(), e.getCause());
-            dumpStack(options.dumpOnError, e);
+            dumpStack(options.dumpOnError(), e);
 
         } catch (SimpleDocletException e) {
             configuration.reporter.print(ERROR, e.getMessage());
-            dumpStack(options.dumpOnError, e);
+            dumpStack(options.dumpOnError(), e);
 
         } catch (InternalException e) {
             configuration.reporter.print(ERROR, e.getMessage());
@@ -201,7 +201,7 @@
         }
         messages.notice("doclet.build_version",
             configuration.getDocletVersion());
-        ClassTree classtree = new ClassTree(configuration, configuration.getOptions().noDeprecated);
+        ClassTree classtree = new ClassTree(configuration, configuration.getOptions().noDeprecated());
 
         generateClassFiles(docEnv, classtree);
 
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/BaseConfiguration.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/BaseConfiguration.java	Mon Jan 27 14:03:58 2020 -0800
@@ -232,8 +232,8 @@
         utils = new Utils(this);
 
         BaseOptions options = getOptions();
-        if (!options.javafx) {
-            options.javafx = isJavaFXMode();
+        if (!options.javafx()) {
+            options.setJavaFX(isJavaFXMode());
         }
 
         // Once docEnv and Utils have been initialized, others should be safe.
@@ -356,15 +356,15 @@
         BaseOptions options = getOptions();
         extern = new Extern(this);
         initDestDirectory();
-        for (String link : options.linkList) {
+        for (String link : options.linkList()) {
             extern.link(link, reporter);
         }
-        for (Pair<String, String> linkOfflinePair : options.linkOfflineList) {
+        for (Pair<String, String> linkOfflinePair : options.linkOfflineList()) {
             extern.link(linkOfflinePair.first, linkOfflinePair.second, reporter);
         }
         typeElementCatalog = new TypeElementCatalog(includedTypeElements, this);
-        initTagletManager(options.customTagStrs);
-        options.groupPairs.stream().forEach((grp) -> {
+        initTagletManager(options.customTagStrs());
+        options.groupPairs().stream().forEach((grp) -> {
             if (showModules) {
                 group.checkModuleGroups(grp.first, grp.second);
             } else {
@@ -391,7 +391,7 @@
     }
 
     private void initDestDirectory() throws DocletException {
-        String destDirName = getOptions().destDirName;
+        String destDirName = getOptions().destDirName();
         if (!destDirName.isEmpty()) {
             Resources resources = getResources();
             DocFile destDir = DocFile.createFileForDirectory(this, destDirName);
@@ -513,7 +513,7 @@
      * @return true if the directory is excluded.
      */
     public boolean shouldExcludeDocFileDir(String docfilesubdir) {
-        Set<String> excludedDocFileDirs = getOptions().excludedDocFileDirs;
+        Set<String> excludedDocFileDirs = getOptions().excludedDocFileDirs();
         return excludedDocFileDirs.contains(docfilesubdir);
     }
 
@@ -524,7 +524,7 @@
      * @return true if the qualifier should be excluded
      */
     public boolean shouldExcludeQualifier(String qualifier) {
-        Set<String> excludedQualifiers = getOptions().excludedQualifiers;
+        Set<String> excludedQualifiers = getOptions().excludedQualifiers();
         if (excludedQualifiers.contains("all") ||
                 excludedQualifiers.contains(qualifier) ||
                 excludedQualifiers.contains(qualifier + ".*")) {
@@ -564,7 +564,7 @@
      * @return true if it is a generated doc.
      */
     public boolean isGeneratedDoc(TypeElement te) {
-        boolean nodeprecated = getOptions().noDeprecated;
+        boolean nodeprecated = getOptions().noDeprecated();
         if (!nodeprecated) {
             return true;
         }
@@ -673,7 +673,7 @@
      * @return the allowScriptInComments
      */
     public boolean isAllowScriptInComments() {
-        return getOptions().allowScriptInComments;
+        return getOptions().allowScriptInComments();
     }
 
     public synchronized VisibleMemberTable getVisibleMemberTable(TypeElement te) {
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/BaseOptions.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/BaseOptions.java	Mon Jan 27 14:03:58 2020 -0800
@@ -52,6 +52,12 @@
  * The objects to handle command-line options, and to initialize this
  * object, are all subtypes of {@link BaseOptions.Option},
  * returned by {@link BaseOptions#getSupportedOptions()}.
+ *
+ * <p>Some of the methods used to access the values of options
+ * have names that begin with a verb, such as {@link #copyDocfileSubdirs}
+ * or {@link #showVersion}. Unless otherwise stated,
+ * these methods should all be taken as just accessing the value
+ * of the associated option.
  */
 public abstract class BaseOptions {
 
@@ -61,25 +67,25 @@
      * Argument for command-line option {@code --allow-script-in-comments}.
      * Allow JavaScript in doc comments.
      */
-    public boolean allowScriptInComments = false;
+    private boolean allowScriptInComments = false;
 
     /**
      * Argument for command-line option {@code -docfilessubdirs}.
      * True if we should recursively copy the doc-file subdirectories
      */
-    public boolean copyDocfileSubdirs = false;
+    private boolean copyDocfileSubdirs = false;
 
     /**
      * Arguments for command-line option {@code -tag} and {@code -taglet}.
      */
-    final LinkedHashSet<List<String>> customTagStrs = new LinkedHashSet<>();
+    private final LinkedHashSet<List<String>> customTagStrs = new LinkedHashSet<>();
 
     /**
      * Argument for command-line option {@code -d}.
      * Destination directory name, in which doclet will generate the entire
      * documentation. Default is current directory.
      */
-    public String destDirName = "";
+    private String destDirName = "";
 
     /**
      * Argument for command-line option {@code --disable-javafx-strict-checks}.
@@ -87,56 +93,56 @@
      * tests allowing those tests to be executed successfully, for
      * instance, with OpenJDK builds which may not contain FX libraries.
      */
-    public boolean disableJavaFxStrictChecks = false;
+    private boolean disableJavaFxStrictChecks = false;
 
     /**
      * Argument for command-line option {@code -docencoding}.
      * Encoding for this document. Default is default encoding for this
      * platform.
      */
-    public String docEncoding = null;
+    private String docEncoding = null;
 
     /**
      * Argument for command-line option {@code ???}.
      * Destination directory name, in which doclet will copy the doc-files to.
      */
-    public String docFileDestDirName = "";
+    private String docFileDestDirName = "";
 
     /**
      * Argument for hidden command-line option {@code --dump-on-error}.
      */
-    public boolean dumpOnError = false;
+    private boolean dumpOnError = false;
 
     /**
      * Argument for command-line option {@code -encoding}.
      * Encoding for this document. Default is default encoding for this
      * platform.
      */
-    public String encoding = null;
+    private String encoding = null;
 
     /**
      * Argument for command-line option {@code -excludedocfilessubdir}.
      * The set of doc-file subdirectories to exclude.
      */
-    protected Set<String> excludedDocFileDirs;
+    private Set<String> excludedDocFileDirs;
 
     /**
      * Argument for command-line option {@code -noqualifier}.
      * The set of qualifiers to exclude.
      */
-    protected Set<String> excludedQualifiers;
+    private Set<String> excludedQualifiers;
 
     /**
      * Arguments for command-line option {@code -group}
      */
-    List<Utils.Pair<String, String>> groupPairs;
+    private List<Utils.Pair<String, String>> groupPairs;
 
     /**
      * Argument for command-line option {@code --javafx} or {@code -javafx}.
      * Generate documentation for JavaFX getters and setters automatically
      * by copying it from the appropriate property definition.
      */
-    public boolean javafx = false;
+    private boolean javafx = false;
 
     /**
      * Argument for command-line option {@code -keywords}.
@@ -144,31 +150,31 @@
      * Set to false because meta keywords are ignored in general
      * by most Internet search engines.
      */
-    public boolean keywords = false;
+    private boolean keywords = false;
 
     /**
      * Arguments for command-line option {@code -link}.
      */
     // A list containing urls
-    final List<String> linkList = new ArrayList<>();
+    private final List<String> linkList = new ArrayList<>();
 
     /**
      * Arguments for command-line option {@code -linkoffline}.
      */
     // A list of pairs containing urls and package list
-    final List<Utils.Pair<String, String>> linkOfflineList = new ArrayList<>();
+    private final List<Utils.Pair<String, String>> linkOfflineList = new ArrayList<>();
 
     /**
      * Argument for command-line option {@code -linksource}.
      * True if we should generate browsable sources.
      */
-    public boolean linkSource = false;
+    private boolean linkSource = false;
 
     /**
      * Argument for command-line option {@code -nocomment}.
      * True if user wants to suppress descriptions and tags.
      */
-    public boolean noComment = false;
+    private boolean noComment = false;
 
     /**
      * Argument for command-line option {@code -nodeprecated}.
@@ -177,34 +183,34 @@
      * -nodeprecated option is used. Default is generate deprecated API
      * information.
      */
-    public boolean noDeprecated = false;
+    private boolean noDeprecated = false;
 
     /**
      * Argument for command-line option {@code -nosince}.
      * True if command-line option "-nosince" is used. Default value is
      * false.
      */
-    public boolean noSince = false;
+    private boolean noSince = false;
 
     /**
      * Argument for command-line option {@code -notimestamp}.
      * True if user wants to suppress time stamp in output.
      * Default is false.
      */
-    public boolean noTimestamp = false;
+    private boolean noTimestamp = false;
 
     /**
      * Argument for command-line option {@code -quiet}.
      * Suppress all messages
      */
-    public boolean quiet = false;
+    private boolean quiet = false;
 
     /**
      * Argument for command-line option {@code -serialwarn}.
      * This is true if option "-serialwarn" is used. Default value is false to
      * suppress excessive warnings about serial tag.
      */
-    public boolean serialWarn = false;
+    private boolean serialWarn = false;
 
     /**
      * Argument for command-line option {@code -author}.
@@ -213,13 +219,13 @@
      * <code>showauthor</code> is set to true if -author option is used.
      * Default is don't show author information.
      */
-    public boolean showAuthor = false;
+    private boolean showAuthor = false;
 
     /**
      * Argument for command-line option {@code --show-taglets}.
      * Show taglets (internal debug switch)
      */
-    public boolean showTaglets = false;
+    private boolean showTaglets = false;
 
     /**
      * Argument for command-line option {@code -version}.
@@ -228,13 +234,13 @@
      * used. {@code showVersion} is set to true if -version option is
      * used. Default is don't show version information.
      */
-    public boolean showVersion = false;
+    private boolean showVersion = false;
 
     /**
      * Argument for command-line option {@code -sourcetab}.
      * The specified amount of space between tab stops.
      */
-    public int sourceTabSize;
+    private int sourceTabSize;
 
     /**
      * Value for command-line option {@code --override-methods summary}
@@ -243,13 +249,13 @@
      * with no changes to the API contract should be summarized in the
      * footnote section.
      */
-    public boolean summarizeOverriddenMethods = false;
+    private boolean summarizeOverriddenMethods = false;
 
     /**
      * Argument for command-line option {@code -tagletpath}.
      * The path to Taglets
      */
-    public String tagletPath = null;
+    private String tagletPath = null;
 
     //</editor-fold>
 
@@ -609,6 +615,265 @@
         return path;
     }
 
+    /**
+     * Argument for command-line option {@code --allow-script-in-comments}.
+     * Allow JavaScript in doc comments.
+     */
+    boolean allowScriptInComments() {
+        return allowScriptInComments;
+    }
+
+    /**
+     * Argument for command-line option {@code -docfilessubdirs}.
+     * True if we should recursively copy the doc-file subdirectories
+     */
+    public boolean copyDocfileSubdirs() {
+        return copyDocfileSubdirs;
+    }
+
+    /**
+     * Arguments for command-line option {@code -tag} and {@code -taglet}.
+     */
+    LinkedHashSet<List<String>> customTagStrs() {
+        return customTagStrs;
+    }
+
+    /**
+     * Argument for command-line option {@code -d}.
+     * Destination directory name, in which doclet will generate the entire
+     * documentation. Default is current directory.
+     */
+    String destDirName() {
+        return destDirName;
+    }
+
+    /**
+     * Argument for command-line option {@code --disable-javafx-strict-checks}.
+     * Primarily used to disable strict checks in the regression
+     * tests allowing those tests to be executed successfully, for
+     * instance, with OpenJDK builds which may not contain FX libraries.
+     */
+    boolean disableJavaFxStrictChecks() {
+        return disableJavaFxStrictChecks;
+    }
+
+    /**
+     * Argument for command-line option {@code -docencoding}.
+     * Encoding for this document. Default is default encoding for this
+     * platform.
+     */
+    public String docEncoding() {
+        return docEncoding;
+    }
+
+    public void setDocEncoding(String docEncoding) {
+        this.docEncoding = docEncoding;
+    }
+
+
+    /**
+     * Argument for command-line option {@code ???}.
+     * Destination directory name, in which doclet will copy the doc-files to.
+     */
+    String docFileDestDirName() {
+        return docFileDestDirName;
+    }
+
+    /**
+     * Argument for hidden command-line option {@code --dump-on-error}.
+     */
+    boolean dumpOnError() {
+        return dumpOnError;
+    }
+
+    /**
+     * Argument for command-line option {@code -encoding}.
+     * Encoding for this document. Default is default encoding for this
+     * platform.
+     */
+    public String encoding() {
+        return encoding;
+    }
+
+    /**
+     * Argument for command-line option {@code -excludedocfilessubdir}.
+     * The set of doc-file subdirectories to exclude.
+     */
+    Set<String> excludedDocFileDirs() {
+        return excludedDocFileDirs;
+    }
+
+    /**
+     * Argument for command-line option {@code -noqualifier}.
+     * The set of qualifiers to exclude.
+     */
+    Set<String> excludedQualifiers() {
+        return excludedQualifiers;
+    }
+
+    /**
+     * Arguments for command-line option {@code -group}
+     */
+    List<Utils.Pair<String, String>> groupPairs() {
+        return groupPairs;
+    }
+
+    /**
+     * Argument for command-line option {@code --javafx} or {@code -javafx}.
+     * Generate documentation for JavaFX getters and setters automatically
+     * by copying it from the appropriate property definition.
+     */
+    public boolean javafx() {
+        return javafx;
+    }
+
+    public void setJavaFX(boolean javafx) {
+        this.javafx = javafx;
+    }
+
+    /**
+     * Argument for command-line option {@code -keywords}.
+     * True if user wants to add member names as meta keywords.
+     * Set to false because meta keywords are ignored in general
+     * by most Internet search engines.
+     */
+    public boolean keywords() {
+        return keywords;
+    }
+
+    /**
+     * Arguments for command-line option {@code -link}.
+     */
+    List<String> linkList() {
+        return linkList;
+    }
+
+    /**
+     * Arguments for command-line option {@code -linkoffline}.
+     */
+    List<Utils.Pair<String, String>> linkOfflineList() {
+        return linkOfflineList;
+    }
+
+    /**
+     * Argument for command-line option {@code -linksource}.
+     * True if we should generate browsable sources.
+     */
+    public boolean linkSource() {
+        return linkSource;
+    }
+
+    /**
+     * Argument for command-line option {@code -nocomment}.
+     * True if user wants to suppress descriptions and tags.
+     */
+    public boolean noComment() {
+        return noComment;
+    }
+
+    /**
+     * Argument for command-line option {@code -nodeprecated}.
+     * Don't generate deprecated API information at all if -nodeprecated
+     * option is used. {@code noDeprecated} is set to {@code true} if
+     * {@code -nodeprecated} option is used.
+     * Default is generate deprecated API information.
+     */
+    public boolean noDeprecated() {
+        return noDeprecated;
+    }
+
+    /**
+     * Argument for command-line option {@code -nosince}.
+     * True if command-line option {@code -nosince"} is used.
+     * Default value is false.
+     */
+    public boolean noSince() {
+        return noSince;
+    }
+
+    /**
+     * Argument for command-line option {@code -notimestamp}.
+     * True if user wants to suppress time stamp in output.
+     * Default is false.
+     */
+    public boolean noTimestamp() {
+        return noTimestamp;
+    }
+
+    /**
+     * Argument for command-line option {@code -quiet}.
+     * Suppress all messages
+     */
+    boolean quiet() {
+        return quiet;
+    }
+
+    /**
+     * Argument for command-line option {@code -serialwarn}.
+     * This is true if option "-serialwarn" is used. Default value is false to
+     * suppress excessive warnings about serial tag.
+     */
+    public boolean serialWarn() {
+        return serialWarn;
+    }
+
+    /**
+     * Argument for command-line option {@code -author}.
+     * Generate author specific information for all the classes if @author
+     * tag is used in the doc comment and if -author option is used.
+     * <code>showauthor</code> is set to true if -author option is used.
+     * Default is don't show author information.
+     */
+    public boolean showAuthor() {
+        return showAuthor;
+    }
+
+    /**
+     * Argument for command-line option {@code --show-taglets}.
+     * Show taglets (internal debug switch)
+     */
+    public boolean showTaglets() {
+        return showTaglets;
+    }
+
+    /**
+     * Argument for command-line option {@code -version}.
+     * Generate version specific information for the all the classes
+     * if @version tag is used in the doc comment and if -version option is
+     * used. {@code showVersion} is set to true if -version option is
+     * used. Default is don't show version information.
+     */
+    public boolean showVersion() {
+        return showVersion;
+    }
+
+    /**
+     * Argument for command-line option {@code -sourcetab}.
+     * The specified amount of space between tab stops.
+     */
+    public int sourceTabSize() {
+        return sourceTabSize;
+    }
+
+    /**
+     * Value for command-line option {@code --override-methods summary}
+     * or  {@code --override-methods detail}.
+     * Specifies whether those methods that override a super-type's method
+     * with no changes to the API contract should be summarized in the
+     * footnote section.
+     */
+    public boolean summarizeOverriddenMethods() {
+        return summarizeOverriddenMethods;
+    }
+
+    /**
+     * Argument for command-line option {@code -tagletpath}.
+     * The path to Taglets
+     */
+    public String tagletPath() {
+        return tagletPath;
+    }
+
     protected abstract static class Option implements Doclet.Option, Comparable<Option> {
         private final String[] names;
         private final String parameters;
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/Messages.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/Messages.java	Mon Jan 27 14:03:58 2020 -0800
@@ -132,7 +132,7 @@
      * @param args optional arguments to be replaced in the message.
      */
     public void notice(String key, Object... args) {
-        if (!configuration.getOptions().quiet) {
+        if (!configuration.getOptions().quiet()) {
             report(NOTE, resources.getText(key, args));
         }
     }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/PropertyUtils.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/PropertyUtils.java	Mon Jan 27 14:03:58 2020 -0800
@@ -31,8 +31,6 @@
 import javax.lang.model.type.TypeMirror;
 import javax.lang.model.util.Types;
 
-import jdk.javadoc.internal.doclets.formats.html.HtmlOptions;
-
 /**
  * This class provides basic JavaFX property related utility methods.
  * Refer to the JavaFX conventions in the VisibleMemberTable comments.
@@ -49,12 +47,12 @@
 
     PropertyUtils(BaseConfiguration configuration) {
         BaseOptions options = configuration.getOptions();
-        javafx = options.javafx;
+        javafx = options.javafx();
 
         typeUtils = configuration.docEnv.getTypeUtils();
 
         // Disable strict check for JDK's without FX.
-        TypeMirror jboType = options.disableJavaFxStrictChecks
+        TypeMirror jboType = options.disableJavaFxStrictChecks()
                 ? null
                 : configuration.utils.getSymbol("javafx.beans.Observable");
 
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/AnnotationTypeFieldBuilder.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/AnnotationTypeFieldBuilder.java	Mon Jan 27 14:03:58 2020 -0800
@@ -181,7 +181,7 @@
      * @param annotationDocTree the content tree to which the documentation will be added
      */
     protected void buildMemberComments(Content annotationDocTree) {
-        if (!options.noComment) {
+        if (!options.noComment()) {
             writer.addComments(currentMember, annotationDocTree);
         }
     }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/AnnotationTypeRequiredMemberBuilder.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/AnnotationTypeRequiredMemberBuilder.java	Mon Jan 27 14:03:58 2020 -0800
@@ -186,7 +186,7 @@
      * @param annotationDocTree the content tree to which the documentation will be added
      */
     protected void buildMemberComments(Content annotationDocTree) {
-        if (!options.noComment) {
+        if (!options.noComment()) {
             writer.addComments(currentMember, annotationDocTree);
         }
     }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/ConstructorBuilder.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/ConstructorBuilder.java	Mon Jan 27 14:03:58 2020 -0800
@@ -176,7 +176,7 @@
      * @param constructorDocTree the content tree to which the documentation will be added
      */
     protected void buildConstructorComments(Content constructorDocTree) {
-        if (!options.noComment) {
+        if (!options.noComment()) {
             writer.addComments(currentConstructor, constructorDocTree);
         }
     }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/EnumConstantBuilder.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/EnumConstantBuilder.java	Mon Jan 27 14:03:58 2020 -0800
@@ -166,7 +166,7 @@
      * @param enumConstantsTree the content tree to which the documentation will be added
      */
     protected void buildEnumConstantComments(Content enumConstantsTree) {
-        if (!options.noComment) {
+        if (!options.noComment()) {
             writer.addComments(currentElement, enumConstantsTree);
         }
     }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/FieldBuilder.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/FieldBuilder.java	Mon Jan 27 14:03:58 2020 -0800
@@ -166,7 +166,7 @@
      * @param fieldDocTree the content tree to which the documentation will be added
      */
     protected void buildFieldComments(Content fieldDocTree) {
-        if (!options.noComment) {
+        if (!options.noComment()) {
             writer.addComments(currentElement, fieldDocTree);
         }
     }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/MethodBuilder.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/MethodBuilder.java	Mon Jan 27 14:03:58 2020 -0800
@@ -166,7 +166,7 @@
      * @param methodDocTree the content tree to which the documentation will be added
      */
     protected void buildMethodComments(Content methodDocTree) {
-        if (!options.noComment) {
+        if (!options.noComment()) {
             ExecutableElement method = currentMethod;
             if (utils.getFullBody(currentMethod).isEmpty()) {
                 DocFinder.Output docs = DocFinder.search(configuration,
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/ModuleSummaryBuilder.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/ModuleSummaryBuilder.java	Mon Jan 27 14:03:58 2020 -0800
@@ -180,7 +180,7 @@
      *                           be added
      */
     protected void buildModuleDescription(Content moduleContentTree) {
-        if (!options.noComment) {
+        if (!options.noComment()) {
             moduleWriter.addModuleDescription(moduleContentTree);
         }
     }
@@ -191,7 +191,7 @@
      * @param moduleContentTree the tree to which the module tags will be added
      */
     protected void buildModuleTags(Content moduleContentTree) {
-        if (!options.noComment) {
+        if (!options.noComment()) {
             moduleWriter.addModuleTags(moduleContentTree);
         }
     }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/PackageSummaryBuilder.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/PackageSummaryBuilder.java	Mon Jan 27 14:03:58 2020 -0800
@@ -166,7 +166,7 @@
         SortedSet<TypeElement> ilist = utils.isSpecified(packageElement)
                         ? utils.getTypeElementsAsSortedSet(utils.getInterfaces(packageElement))
                         : configuration.typeElementCatalog.interfaces(packageElement);
-        SortedSet<TypeElement> interfaces = utils.filterOutPrivateClasses(ilist, options.javafx);
+        SortedSet<TypeElement> interfaces = utils.filterOutPrivateClasses(ilist, options.javafx());
         if (!interfaces.isEmpty()) {
             packageWriter.addInterfaceSummary(interfaces, summaryContentTree);
         }
@@ -182,7 +182,7 @@
         SortedSet<TypeElement> clist = utils.isSpecified(packageElement)
             ? utils.getTypeElementsAsSortedSet(utils.getOrdinaryClasses(packageElement))
             : configuration.typeElementCatalog.ordinaryClasses(packageElement);
-        SortedSet<TypeElement> classes = utils.filterOutPrivateClasses(clist, options.javafx);
+        SortedSet<TypeElement> classes = utils.filterOutPrivateClasses(clist, options.javafx());
         if (!classes.isEmpty()) {
             packageWriter.addClassSummary(classes, summaryContentTree);
         }
@@ -198,7 +198,7 @@
         SortedSet<TypeElement> elist = utils.isSpecified(packageElement)
             ? utils.getTypeElementsAsSortedSet(utils.getEnums(packageElement))
             : configuration.typeElementCatalog.enums(packageElement);
-        SortedSet<TypeElement> enums = utils.filterOutPrivateClasses(elist, options.javafx);
+        SortedSet<TypeElement> enums = utils.filterOutPrivateClasses(elist, options.javafx());
         if (!enums.isEmpty()) {
             packageWriter.addEnumSummary(enums, summaryContentTree);
         }
@@ -214,7 +214,7 @@
         SortedSet<TypeElement> rlist = utils.isSpecified(packageElement)
                 ? utils.getTypeElementsAsSortedSet(utils.getRecords(packageElement))
                 : configuration.typeElementCatalog.records(packageElement);
-        SortedSet<TypeElement> records = utils.filterOutPrivateClasses(rlist, options.javafx);
+        SortedSet<TypeElement> records = utils.filterOutPrivateClasses(rlist, options.javafx());
         if (!records.isEmpty()) {
             packageWriter.addRecordSummary(records, summaryContentTree);
         }
@@ -232,7 +232,7 @@
                 ? utils.getTypeElementsAsSortedSet(utils.getExceptions(packageElement))
                 : configuration.typeElementCatalog.exceptions(packageElement);
         SortedSet<TypeElement> exceptions = utils.filterOutPrivateClasses(iexceptions,
-                options.javafx);
+                options.javafx());
         if (!exceptions.isEmpty()) {
             packageWriter.addExceptionSummary(exceptions, summaryContentTree);
         }
@@ -249,7 +249,7 @@
             utils.isSpecified(packageElement)
                 ? utils.getTypeElementsAsSortedSet(utils.getErrors(packageElement))
                 : configuration.typeElementCatalog.errors(packageElement);
-        SortedSet<TypeElement> errors = utils.filterOutPrivateClasses(ierrors, options.javafx);
+        SortedSet<TypeElement> errors = utils.filterOutPrivateClasses(ierrors, options.javafx());
         if (!errors.isEmpty()) {
             packageWriter.addErrorSummary(errors, summaryContentTree);
         }
@@ -267,7 +267,7 @@
                 ? utils.getTypeElementsAsSortedSet(utils.getAnnotationTypes(packageElement))
                 : configuration.typeElementCatalog.annotationTypes(packageElement);
         SortedSet<TypeElement> annotationTypes = utils.filterOutPrivateClasses(iannotationTypes,
-                options.javafx);
+                options.javafx());
         if (!annotationTypes.isEmpty()) {
             packageWriter.addAnnotationTypeSummary(annotationTypes, summaryContentTree);
         }
@@ -280,7 +280,7 @@
      *                           be added
      */
     protected void buildPackageDescription(Content packageContentTree) {
-        if (options.noComment) {
+        if (options.noComment()) {
             return;
         }
         packageWriter.addPackageDescription(packageContentTree);
@@ -292,7 +292,7 @@
      * @param packageContentTree the tree to which the package tags will be added
      */
     protected void buildPackageTags(Content packageContentTree) {
-        if (options.noComment) {
+        if (options.noComment()) {
             return;
         }
         packageWriter.addPackageTags(packageContentTree);
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/PropertyBuilder.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/PropertyBuilder.java	Mon Jan 27 14:03:58 2020 -0800
@@ -165,7 +165,7 @@
      * @param propertyDocTree the content tree to which the documentation will be added
      */
     protected void buildPropertyComments(Content propertyDocTree) {
-        if (!options.noComment) {
+        if (!options.noComment()) {
             writer.addComments(currentProperty, propertyDocTree);
         }
     }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/SerializedFormBuilder.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/SerializedFormBuilder.java	Mon Jan 27 14:03:58 2020 -0800
@@ -324,7 +324,7 @@
      * @throws DocletException if there is a problem while building the documentation
      */
     protected void buildMethodInfo(Content methodsContentTree) throws DocletException  {
-        if (options.noComment) {
+        if (options.noComment()) {
             return;
         }
 
@@ -351,7 +351,7 @@
         ExecutableElement method = (ExecutableElement)currentMember;
         if (method.getSimpleName().toString().compareTo("writeExternal") == 0
                 && utils.getSerialDataTrees(method).isEmpty()) {
-            if (options.serialWarn) {
+            if (options.serialWarn()) {
                 TypeElement encl  = (TypeElement) method.getEnclosingElement();
                 messages.warning(currentMember,
                         "doclet.MissingSerialDataTag", encl.getQualifiedName().toString(),
@@ -386,7 +386,7 @@
                 Content serializableFieldsTree = fieldWriter.getSerializableFieldsHeader();
                 Content fieldsOverviewContentTree = fieldWriter.getFieldsContentHeader(true);
                 fieldWriter.addMemberDeprecatedInfo(ve, fieldsOverviewContentTree);
-                if (!options.noComment) {
+                if (!options.noComment()) {
                     fieldWriter.addMemberDescription(ve, fieldsOverviewContentTree);
                     fieldWriter.addMemberTags(ve, fieldsOverviewContentTree);
                 }
@@ -462,7 +462,7 @@
      * @param serializableFieldsTree content tree to which the documentation will be added
      */
     protected void buildSerialFieldTagsInfo(Content serializableFieldsTree) {
-        if (options.noComment) {
+        if (options.noComment()) {
             return;
         }
         VariableElement field = (VariableElement)currentMember;
@@ -509,14 +509,14 @@
      * @param fieldsContentTree content tree to which the documentation will be added
      */
     protected void buildFieldInfo(Content fieldsContentTree) {
-        if (options.noComment) {
+        if (options.noComment()) {
             return;
         }
         VariableElement field = (VariableElement)currentMember;
         TypeElement te = utils.getEnclosingTypeElement(currentMember);
         // Process default Serializable field.
         if ((utils.getSerialTrees(field).isEmpty()) /*&& !field.isSynthetic()*/
-                && options.serialWarn) {
+                && options.serialWarn()) {
             messages.warning(field,
                     "doclet.MissingSerialTag", utils.getFullyQualifiedName(te),
                     utils.getSimpleName(field));
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/TagletManager.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/taglets/TagletManager.java	Mon Jan 27 14:03:58 2020 -0800
@@ -192,17 +192,17 @@
         unseenCustomTags = new HashSet<>();
         allTaglets = new LinkedHashMap<>();
         BaseOptions options = configuration.getOptions();
-        this.nosince = options.noSince;
-        this.showversion = options.showVersion;
-        this.showauthor = options.showAuthor;
-        this.javafx = options.javafx;
+        this.nosince = options.noSince();
+        this.showversion = options.showVersion();
+        this.showauthor = options.showAuthor();
+        this.javafx = options.javafx();
         this.docEnv = configuration.docEnv;
         this.doclet = configuration.doclet;
         this.messages = configuration.getMessages();
         this.resources = configuration.getResources();
-        this.showTaglets = options.showTaglets;
+        this.showTaglets = options.showTaglets();
         this.utils = configuration.utils;
-        this.tagletPath = options.tagletPath;
+        this.tagletPath = options.tagletPath();
         initStandardTaglets();
     }
 
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/ClassTree.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/ClassTree.java	Mon Jan 27 14:03:58 2020 -0800
@@ -166,7 +166,7 @@
             // In the tree page (e.g overview-tree.html) do not include
             // information of classes which are deprecated or are a part of a
             // deprecated package.
-            if (configuration.getOptions().noDeprecated &&
+            if (configuration.getOptions().noDeprecated() &&
                     (utils.isDeprecated(aClass) ||
                     utils.isDeprecated(utils.containingPackage(aClass)))) {
                 continue;
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/ElementListWriter.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/ElementListWriter.java	Mon Jan 27 14:03:58 2020 -0800
@@ -77,7 +77,7 @@
         try (BufferedWriter out = new BufferedWriter(file.openWriter())) {
             if (configuration.showModules) {
                 for (ModuleElement mdle : configuration.modulePackages.keySet()) {
-                    if (!(options.noDeprecated && utils.isDeprecated(mdle))) {
+                    if (!(options.noDeprecated() && utils.isDeprecated(mdle))) {
                         out.write(DocletConstants.MODULE_PREFIX + mdle.toString());
                         out.newLine();
                         for (PackageElement pkg : configuration.modulePackages.get(mdle)) {
@@ -90,7 +90,7 @@
                 for (PackageElement pkg : configuration.packages) {
                     // if the -nodeprecated option is set and the package is marked as
                     // deprecated, do not include it in the packages list.
-                    if (!(options.noDeprecated && utils.isDeprecated(pkg))) {
+                    if (!(options.noDeprecated() && utils.isDeprecated(pkg))) {
                         out.write(pkg.toString());
                         out.newLine();
                     }
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/IndexBuilder.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/IndexBuilder.java	Mon Jan 27 14:03:58 2020 -0800
@@ -111,7 +111,7 @@
 
         this.noDeprecated = noDeprecated;
         this.classesOnly = classesOnly;
-        this.javafx = configuration.getOptions().javafx;
+        this.javafx = configuration.getOptions().javafx();
         this.indexmap = new TreeMap<>();
         comparator = classesOnly
                 ? utils.makeAllClassesComparator()
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/MetaKeywords.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/MetaKeywords.java	Mon Jan 27 14:03:58 2020 -0800
@@ -78,7 +78,7 @@
         ArrayList<String> results = new ArrayList<>();
 
         // Add field and method keywords only if -keywords option is used
-        if (options.keywords) {
+        if (options.keywords()) {
             results.addAll(getClassKeyword(typeElement));
             results.addAll(getMemberKeywords(utils.getFields(typeElement)));
             results.addAll(getMemberKeywords(utils.getMethods(typeElement)));
@@ -103,7 +103,7 @@
      */
     public List<String> getMetaKeywords(PackageElement packageElement) {
         List<String> result = new ArrayList<>(1);
-        if (options.keywords) {
+        if (options.keywords()) {
             String pkgName = utils.getPackageName(packageElement);
             result.add(pkgName + " " + "package");
         }
@@ -116,7 +116,7 @@
      * @param mdle the module being documented
      */
     public List<String> getMetaKeywordsForModule(ModuleElement mdle) {
-        if (options.keywords) {
+        if (options.keywords()) {
             return Arrays.asList(mdle.getQualifiedName() + " " + "module");
         } else {
             return Collections.emptyList();
@@ -128,7 +128,7 @@
      */
     public List<String> getOverviewMetaKeywords(String title, String docTitle) {
          List<String> result = new ArrayList<>(1);
-        if (options.keywords) {
+        if (options.keywords()) {
             String windowOverview = resources.getText(title);
             if (docTitle.length() > 0) {
                 result.add(windowOverview + ", " + docTitle);
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/StandardDocFileFactory.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/StandardDocFileFactory.java	Mon Jan 27 14:03:58 2020 -0800
@@ -207,7 +207,7 @@
 
             try {
                 OutputStream out = getFileObjectForOutput(path).openOutputStream();
-                String docencoding = configuration.getOptions().docEncoding;
+                String docencoding = configuration.getOptions().docEncoding();
                 return new BufferedWriter(new OutputStreamWriter(out, docencoding));
             } catch (IOException e) {
                 throw new DocFileIOException(this, DocFileIOException.Mode.WRITE, e);
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/TypeElementCatalog.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/TypeElementCatalog.java	Mon Jan 27 14:03:58 2020 -0800
@@ -162,7 +162,7 @@
     private void addTypeElement(TypeElement typeElement, Map<PackageElement, SortedSet<TypeElement>> map) {
 
         PackageElement pkg = utils.containingPackage(typeElement);
-        if (utils.isSpecified(pkg) || configuration.getOptions().noDeprecated && utils.isDeprecated(pkg)) {
+        if (utils.isSpecified(pkg) || configuration.getOptions().noDeprecated() && utils.isDeprecated(pkg)) {
             // No need to catalog this class if it's package is
             // specified on the command line or if -nodeprecated option is set
             return;
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/Utils.java	Mon Jan 27 14:03:58 2020 -0800
@@ -393,7 +393,7 @@
     }
 
     public boolean isProperty(String name) {
-        return options.javafx && name.endsWith("Property");
+        return options.javafx() && name.endsWith("Property");
     }
 
     public String getPropertyName(String name) {
@@ -1390,7 +1390,7 @@
         if (!text.contains("\t"))
             return text;
 
-        final int tabLength = options.sourceTabSize;
+        final int tabLength = options.sourceTabSize();
         final String whitespace = " ".repeat(tabLength);
         final int textLength = text.length();
         StringBuilder result = new StringBuilder(textLength);
@@ -1523,7 +1523,7 @@
         if (!isIncluded(e)) {
             return false;
         }
-        if (options.javafx &&
+        if (options.javafx() &&
                 hasBlockTag(e, DocTree.Kind.UNKNOWN_BLOCK_TAG, "treatAsPrivate")) {
             return true;
         }
@@ -1536,8 +1536,7 @@
      * @return true if there are no comments, false otherwise
      */
     public boolean isSimpleOverride(ExecutableElement m) {
-        if (!options.summarizeOverriddenMethods ||
-                !isIncluded(m)) {
+        if (!options.summarizeOverriddenMethods() || !isIncluded(m)) {
             return false;
         }
 
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/VisibleMemberTable.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/util/VisibleMemberTable.java	Mon Jan 27 14:03:58 2020 -0800
@@ -661,7 +661,7 @@
 
             List<? extends Element> elements = te.getEnclosedElements();
             for (Element e : elements) {
-                if (options.noDeprecated && utils.isDeprecated(e)) {
+                if (options.noDeprecated() && utils.isDeprecated(e)) {
                     continue;
                 }
                 switch (e.getKind()) {
@@ -803,7 +803,7 @@
      * {@code boolean isFoo()}
      */
     private void computeVisibleProperties(LocalMemberTable lmt) {
-        if (!options.javafx)
+        if (!options.javafx())
             return;
 
         PropertyUtils pUtils = config.propertyUtils;
--- a/src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/ToolOptions.java	Mon Jan 27 13:42:57 2020 -0800
+++ b/src/jdk.javadoc/share/classes/jdk/javadoc/internal/tool/ToolOptions.java	Mon Jan 27 14:03:58 2020 -0800
@@ -49,6 +49,12 @@
  * the source level, and path options to locate the files to be
  * documented.
  *
+ * <p>Some of the methods used to access the values of options
+ * have names that begin with a verb, such as {@link #expandRequires}
+ * or {@link #ignoreSourceErrors}. Unless otherwise stated,
+ * these methods should all be taken as just accessing the value
+ * of the associated option.
+ *
  *  <p><b>This is NOT part of any supported API.
  *  If you write code that depends on this, you do so at your own risk.
  *  This code and its internal interfaces are subject to change or