diff options
author | Xin Li <delphij@google.com> | 2018-08-06 16:50:34 -0700 |
---|---|---|
committer | Xin Li <delphij@google.com> | 2018-08-06 16:50:34 -0700 |
commit | 909173e4a5ac9fca92357c16a1b599484ddb4112 (patch) | |
tree | fe9b644c3b27bb7a5c4d61f244a8cab9c56d23e8 | |
parent | 86de7f03745a4d9ce2cb3b8e1dd096449f063ef7 (diff) | |
parent | c247876c1edd4481451afd0db76d75cd40a3e283 (diff) | |
download | doclava-909173e4a5ac9fca92357c16a1b599484ddb4112.tar.gz |
Merge Android Pie into master
Bug: 112104996
Change-Id: I1d6cad31ae4947c0b87fe6d3c9cfa3daecc56b5b
-rw-r--r-- | res/assets/templates-sdk/body_tag.cs | 18 | ||||
-rw-r--r-- | res/assets/templates-sdk/class.cs | 119 | ||||
-rw-r--r-- | res/assets/templates-sdk/classes.cs | 13 | ||||
-rw-r--r-- | res/assets/templates-sdk/head_tag.cs | 3 | ||||
-rw-r--r-- | res/assets/templates-sdk/macros_override.cs | 6 | ||||
-rw-r--r-- | res/assets/templates-sdk/package.cs | 6 | ||||
-rw-r--r-- | res/assets/templates-sdk/packages.cs | 8 | ||||
-rw-r--r-- | res/assets/templates/macros.cs | 14 | ||||
-rw-r--r-- | src/com/google/doclava/AndroidAuxSource.java | 5 | ||||
-rw-r--r-- | src/com/google/doclava/Doclava.java | 45 | ||||
-rw-r--r-- | src/com/google/doclava/MemberInfo.java | 2 | ||||
-rw-r--r-- | src/com/google/doclava/NavTree.java | 1 | ||||
-rw-r--r-- | src/com/google/doclava/Stubs.java | 49 |
13 files changed, 148 insertions, 141 deletions
diff --git a/res/assets/templates-sdk/body_tag.cs b/res/assets/templates-sdk/body_tag.cs index 335eec5..1649ffa 100644 --- a/res/assets/templates-sdk/body_tag.cs +++ b/res/assets/templates-sdk/body_tag.cs @@ -1 +1,17 @@ -<body> +<body class="gc-documentation <?cs + if:(reference.gms || reference.gcm) + ?>google<?cs + /if ?><?cs + if:(guide||develop||training||reference||tools||sdk) + ?>develop<?cs + if:reference + ?> reference api apilevel-<?cs var:class.since ?><?cs var:package.since ?><?cs + /if ?><?cs + elif:design + ?>design<?cs + elif:distribute + ?>distribute<?cs + /if ?>"><?cs +if:dac && !page.not-api + ?><div id="doc-api-level" class="<?cs var:class.since ?><?cs var:package.since ?>" style="display:none"></div><?cs +/if ?> diff --git a/res/assets/templates-sdk/class.cs b/res/assets/templates-sdk/class.cs index 5fb2a9d..d014edd 100644 --- a/res/assets/templates-sdk/class.cs +++ b/res/assets/templates-sdk/class.cs @@ -13,9 +13,10 @@ ?><?cs def:write_method_summary(methods, included) ?> <?cs set:count = #1 ?> <?cs each:method = methods ?> - <tr <?cs - if:method.since - ?>data-version-added="<?cs var:method.since ?>"<?cs + <?cs # The apilevel-N class MUST BE LAST in the sequence of class names ?> + <tr class="api apilevel-<?cs var:method.since ?>"<?cs + if:method.since ?> + data-version-added="<?cs var:method.since ?>"<?cs /if ?><?cs if:method.deprecatedsince ?> data-version-deprecated="<?cs var:method.deprecatedsince ?>"<?cs @@ -50,9 +51,9 @@ ?><?cs def:write_field_summary(fields, included) ?> <?cs set:count = #1 ?> <?cs each:field=fields ?> - <tr <?cs - if:field.since - ?>data-version-added="<?cs var:field.since ?>"<?cs + <tr class="api apilevel-<?cs var:field.since ?>"<?cs + if:field.since ?> + data-version-added="<?cs var:field.since ?>"<?cs /if ?><?cs if:field.deprecatedsince ?> data-version-deprecated="<?cs var:field.deprecatedsince ?>"<?cs @@ -77,9 +78,9 @@ ?><?cs def:write_constant_summary(fields, included) ?> <?cs set:count = #1 ?> <?cs each:field=fields ?> - <tr <?cs - if:field.since - ?>data-version-added="<?cs var:field.since ?>"<?cs + <tr class="api apilevel-<?cs var:field.since ?>"<?cs + if:field.since ?> + data-version-added="<?cs var:field.since ?>"<?cs /if ?><?cs if:field.deprecatedsince ?> data-version-deprecated="<?cs var:field.deprecatedsince ?>"<?cs @@ -100,9 +101,9 @@ ?><?cs def:write_attr_summary(attrs, included) ?> <?cs set:count = #1 ?> <?cs each:attr=attrs ?> - <tr <?cs - if:attr.since - ?>data-version-added="<?cs var:attr.since ?>"<?cs + <tr class="api apilevel-<?cs var:attr.since ?>"<?cs + if:attr.since ?> + data-version-added="<?cs var:attr.since ?>"<?cs /if ?><?cs if:attr.deprecatedsince ?> data-version-deprecated="<?cs var:attr.deprecatedsince ?>"<?cs @@ -123,9 +124,9 @@ ?><?cs def:write_inners_summary(classes) ?> <?cs set:count = #1 ?> <?cs each:cl=class.inners ?> - <tr <?cs - if:cl.since - ?>data-version-added="<?cs var:cl.since ?>"<?cs + <tr class="api apilevel-<?cs var:cl.since ?>"<?cs + if:cl.since ?> + data-version-added="<?cs var:cl.since ?>"<?cs /if ?><?cs if:cl.deprecatedsince ?> data-version-deprecated="<?cs var:cl.deprecatedsince ?>"<?cs @@ -156,14 +157,18 @@ ?> <?cs def:write_field_details(fields) ?> <?cs each:field=fields ?> -<div <?cs - if:field.since - ?>data-version-added="<?cs var:field.since ?>"<?cs +<?cs # this next line must be exactly like this to be parsed by eclipse ?> +<?cs # the A tag in the next line must remain where it is, so that Eclipse can parse the docs ?> +<A NAME="<?cs var:field.anchor ?>"></A> +<?cs # The apilevel-N class MUST BE LAST in the sequence of class names ?> +<div class="api apilevel-<?cs var:field.since ?>"<?cs + if:field.since ?> + data-version-added="<?cs var:field.since ?>"<?cs /if ?><?cs if:field.deprecatedsince ?> data-version-deprecated="<?cs var:field.deprecatedsince ?>"<?cs /if ?> > - <h3 class="api-name" id="<?cs var:field.anchor ?>"><?cs var:field.name ?></h3> + <h3 class="api-name"><?cs var:field.name ?></h3> <div class="api-level"> <?cs call:since_tags(field) ?> <?cs call:federated_refs(field) ?> @@ -191,14 +196,17 @@ <?cs def:write_method_details(methods) ?> <?cs each:method=methods ?> -<div <?cs - if:method.since - ?>data-version-added="<?cs var:method.since ?>"<?cs +<?cs # the A tag in the next line must remain where it is, so that Eclipse can parse the docs ?> +<A NAME="<?cs var:method.anchor ?>"></A> +<?cs # The apilevel-N class MUST BE LAST in the sequence of class names ?> +<div class="api apilevel-<?cs var:method.since ?>"<?cs + if:method.since ?> + data-version-added="<?cs var:method.since ?>"<?cs /if ?><?cs if:method.deprecatedsince ?> data-version-deprecated="<?cs var:method.deprecatedsince ?>"<?cs /if ?>> - <h3 class="api-name" id="<?cs var:method.anchor ?>"><?cs var:method.name ?></h3> + <h3 class="api-name"><?cs var:method.name ?></h3> <div class="api-level"> <div><?cs call:since_tags(method) ?></div> <?cs call:federated_refs(method) ?> @@ -218,7 +226,9 @@ <?cs def:write_attr_details(attrs) ?> <?cs each:attr=attrs ?> -<h3 class="api-name" id="<?cs var:attr.anchor ?>"><?cs var:attr.name ?></h3> +<?cs # the A tag in the next line must remain where it is, so that Eclipse can parse the docs ?> +<A NAME="<?cs var:attr.anchor ?>"></A> +<h3 class="api-name"><?cs var:attr.name ?></h3> <?cs call:show_annotations_list(attr) ?> <?cs call:description(attr) ?> <?cs if:subcount(attr.methods) ?> @@ -257,9 +267,9 @@ <?cs # Includes api-info-block DIV at top of page. Standard Devsite uses right nav. ?> <?cs if:dac ?><?cs include:"page_info.cs" ?><?cs /if ?> <?cs # This DIV spans the entire document to provide scope for some scripts ?> -<div id="jd-content" <?cs - if:class.since - ?>data-version-added="<?cs var:class.since ?>"<?cs +<div class="api apilevel-<?cs var:class.since ?>" id="jd-content"<?cs + if:class.since ?> + data-version-added="<?cs var:class.since ?>"<?cs /if ?><?cs if:class.deprecatedsince ?> data-version-deprecated="<?cs var:class.deprecatedsince ?>"<?cs @@ -413,9 +423,9 @@ if:subcount(class.subclasses.direct) && !class.subclasses.hidden ?> <tr><th><h3>Inherited XML attributes</h3></th></tr> <?cs each:cl=class.inherited ?> <?cs if:subcount(cl.attrs) ?> -<tr <?cs - if:cl.since - ?>data-version-added="<?cs var:cl.since ?>"<?cs +<tr class="api apilevel-<?cs var:cl.since ?>"<?cs + if:cl.since ?> + data-version-added="<?cs var:cl.since ?>"<?cs /if ?><?cs if:cl.deprecatedsince ?> data-version-deprecated="<?cs var:cl.deprecatedsince ?>"<?cs @@ -442,9 +452,9 @@ if:subcount(class.subclasses.direct) && !class.subclasses.hidden ?> <tr><th colspan="2"><h3>Enum values</h3></th></tr> <?cs set:count = #1 ?> <?cs each:field=class.enumConstants ?> - <tr <?cs - if:field.since - ?>data-version-added="<?cs var:field.since ?>"<?cs + <tr class="api apilevel-<?cs var:field.since ?>"<?cs + if:field.since ?> + data-version-added="<?cs var:field.since ?>"<?cs /if ?><?cs if:field.deprecatedsince ?> data-version-deprecated="<?cs var:field.deprecatedsince ?>"<?cs @@ -477,9 +487,9 @@ if:subcount(class.subclasses.direct) && !class.subclasses.hidden ?> <tr><th><h3>Inherited constants</h3></th></tr> <?cs each:cl=class.inherited ?> <?cs if:subcount(cl.constants) ?> - <tr <?cs - if:cl.since - ?>data-version-added="<?cs var:cl.since ?>"<?cs + <tr class="api apilevel-<?cs var:cl.since ?>"<?cs + if:cl.since ?> + data-version-added="<?cs var:cl.since ?>"<?cs /if ?><?cs if:cl.deprecatedsince ?> data-version-deprecated="<?cs var:cl.deprecatedsince ?>"<?cs @@ -516,9 +526,9 @@ if:subcount(class.subclasses.direct) && !class.subclasses.hidden ?> <tr><th><h3>Inherited fields</h3></th></tr> <?cs each:cl=class.inherited ?> <?cs if:subcount(cl.fields) ?> - <tr <?cs - if:cl.since - ?>data-version-added="<?cs var:cl.since ?>"<?cs + <tr class="api apilevel-<?cs var:cl.since ?>"<?cs + if:cl.since ?> + data-version-added="<?cs var:cl.since ?>"<?cs /if ?><?cs if:cl.deprecatedsince ?> data-version-deprecated="<?cs var:cl.deprecatedsince ?>"<?cs @@ -582,9 +592,9 @@ if:subcount(class.subclasses.direct) && !class.subclasses.hidden ?> <tr><th><h3>Inherited methods</h3></th></tr> <?cs each:cl=class.inherited ?> <?cs if:subcount(cl.methods) ?> -<tr <?cs - if:cl.since - ?>data-version-added="<?cs var:cl.since ?>"<?cs +<tr class="api apilevel-<?cs var:cl.since ?>"<?cs + if:cl.since ?> + data-version-added="<?cs var:cl.since ?>"<?cs /if ?><?cs if:cl.deprecatedsince ?> data-version-deprecated="<?cs var:cl.deprecatedsince ?>"<?cs @@ -685,6 +695,31 @@ if:subcount(class.subclasses.direct) && !class.subclasses.hidden ?> </div><!-- end jd-content --> +<?cs if:devsite ?> + +<div class="data-reference-resources-wrapper"> + <?cs if:subcount(class.package) ?> + <ul data-reference-resources> + <?cs call:list("Annotations", class.package.annotations) ?> + <?cs call:list("Interfaces", class.package.interfaces) ?> + <?cs call:list("Classes", class.package.classes) ?> + <?cs call:list("Enums", class.package.enums) ?> + <?cs call:list("Exceptions", class.package.exceptions) ?> + <?cs call:list("Errors", class.package.errors) ?> + </ul> + <?cs elif:subcount(package) ?> + <ul data-reference-resources> + <?cs call:class_link_list("Annotations", package.annotations) ?> + <?cs call:class_link_list("Interfaces", package.interfaces) ?> + <?cs call:class_link_list("Classes", package.classes) ?> + <?cs call:class_link_list("Enums", package.enums) ?> + <?cs call:class_link_list("Exceptions", package.exceptions) ?> + <?cs call:class_link_list("Errors", package.errors) ?> + </ul> + <?cs /if ?> +</div> +<?cs /if ?> + <?cs if:!devsite ?> <?cs include:"footer.cs" ?> <?cs include:"trailer.cs" ?> diff --git a/res/assets/templates-sdk/classes.cs b/res/assets/templates-sdk/classes.cs index f10eb71..bc6b98d 100644 --- a/res/assets/templates-sdk/classes.cs +++ b/res/assets/templates-sdk/classes.cs @@ -11,15 +11,22 @@ <p>These are the API classes. See all <a href="packages.html">API packages</a>.</p> +<div class="jd-letterlist"><?cs + each:letter=docs.classes ?> + <a href="#letter_<?cs name:letter ?>"><?cs + name:letter ?></a> <?cs + /each?> +</div> + <?cs each:letter=docs.classes ?> <?cs set:count = #1 ?> <h2 id="letter_<?cs name:letter ?>"><?cs name:letter ?></h2> <table> <?cs set:cur_row = #0 ?> <?cs each:cl = letter ?> - <tr <?cs - if:cl.since - ?>data-version-added="<?cs var:cl.since ?>"<?cs + <tr class="api apilevel-<?cs var:cl.since ?>"<?cs + if:cl.since ?> + data-version-added="<?cs var:cl.since ?>"<?cs /if ?><?cs if:cl.deprecatedsince ?> data-version-deprecated="<?cs var:cl.deprecatedsince ?>"<?cs diff --git a/res/assets/templates-sdk/head_tag.cs b/res/assets/templates-sdk/head_tag.cs index 374218b..bb698b9 100644 --- a/res/assets/templates-sdk/head_tag.cs +++ b/res/assets/templates-sdk/head_tag.cs @@ -20,7 +20,8 @@ if:devsite ?><?cs if:library.root ?> {% setvar book_path %}/reference/<?cs var:library.root ?>/_book.yaml{% endsetvar %}<?cs /if ?> - {% include "_shared/_reference-head-tags.html" %}<?cs + {% include "_shared/_reference-head-tags.html" %} + <meta name="body_class" value="api apilevel-<?cs var:class.since ?><?cs var:package.since ?>" /><?cs else ?><?cs # If NOT dac... ?> <meta name="hide_page_heading" value="true" /> <meta name="book_path" value="<?cs diff --git a/res/assets/templates-sdk/macros_override.cs b/res/assets/templates-sdk/macros_override.cs index 8ef81cf..b475798 100644 --- a/res/assets/templates-sdk/macros_override.cs +++ b/res/assets/templates-sdk/macros_override.cs @@ -23,9 +23,9 @@ <?cs set:count = #1 ?> <table class="jd-sumtable-expando"> <?cs each:cl=classes ?> - <tr <?cs - if:cl.type.since - ?>data-version-added="<?cs var:cl.type.since ?>"<?cs + <tr class="api apilevel-<?cs var:cl.type.since ?>"<?cs + if:cl.type.since ?> + data-version-added="<?cs var:cl.type.since ?>"<?cs /if ?><?cs if:cl.type.deprecatedsince ?> data-version-deprecated="<?cs var:cl.type.deprecatedsince ?>"<?cs diff --git a/res/assets/templates-sdk/package.cs b/res/assets/templates-sdk/package.cs index 7595e40..ab66449 100644 --- a/res/assets/templates-sdk/package.cs +++ b/res/assets/templates-sdk/package.cs @@ -15,9 +15,9 @@ <?cs include:"header.cs" ?> <?cs # Includes api-info-block DIV at top of page. Standard Devsite uses right nav. ?> <?cs if:dac ?><?cs include:"page_info.cs" ?><?cs /if ?> -<div id="jd-content" <?cs - if:package.since - ?>data-version-added="<?cs var:package.since ?>"<?cs +<div class="api apilevel-<?cs var:package.since ?>" id="jd-content"<?cs + if:package.since ?> + data-version-added="<?cs var:package.since ?>"<?cs /if ?><?cs if:package.deprecatedsince ?> data-version-deprecated="<?cs var:package.deprecatedsince ?>"<?cs diff --git a/res/assets/templates-sdk/packages.cs b/res/assets/templates-sdk/packages.cs index caf8fba..3fcfb81 100644 --- a/res/assets/templates-sdk/packages.cs +++ b/res/assets/templates-sdk/packages.cs @@ -13,13 +13,7 @@ See all <a href="classes.html">API classes</a>.</p> <?cs set:count = #1 ?> <table> <?cs each:pkg = docs.packages ?> - <tr <?cs - if:pkg.since - ?>data-version-added="<?cs var:pkg.since ?>"<?cs - /if ?><?cs - if:pkg.deprecatedsince - ?> data-version-deprecated="<?cs var:pkg.deprecatedsince ?>"<?cs - /if ?> > + <tr class="api apilevel-<?cs var:pkg.since ?>" > <td class="jd-linkcol"><?cs call:package_link(pkg) ?></td> <td class="jd-descrcol" width="100%"><?cs call:tag_list(pkg.shortDescr) ?></td> </tr> diff --git a/res/assets/templates/macros.cs b/res/assets/templates/macros.cs index 13a884f..6590b51 100644 --- a/res/assets/templates/macros.cs +++ b/res/assets/templates/macros.cs @@ -393,13 +393,7 @@ def:class_link_table(classes) ?><?cs set:count = #1 ?> <table class="jd-sumtable-expando"><?cs each:cl=classes ?> - <tr <?cs - if:cl.type.since - ?>data-version-added="<?cs var:cl.type.since ?>"<?cs - /if ?><?cs - if:cl.type.deprecatedsince - ?> data-version-deprecated="<?cs var:cl.type.deprecatedsince ?>"<?cs - /if ?> > + <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:cl.type.since ?>" > <td><?cs call:type_link(cl.type) ?></td> <td width="100%"><?cs call:short_descr(cl) ?> </td> </tr><?cs set:count = count + #1 ?><?cs @@ -413,7 +407,7 @@ def:class_link_list(label, classes) ?><?cs <li><h2 class="hide-from-toc"><?cs var:label ?></h2> <ul><?cs each:cl=classes ?> - <li><?cs call:type_link2(cl.type,"true") ?></li><?cs + <li class="api apilevel-<?cs var:cl.type.since ?>"><?cs call:type_link2(cl.type,"true") ?></li><?cs /each ?> </ul> </li><?cs @@ -426,7 +420,7 @@ def:list(label, classes) ?><?cs <li><h2 class="hide-from-toc"><?cs var:label ?></h2> <ul><?cs each:cl=classes ?> - <li<?cs if:class.name == cl.label?> class="selected"<?cs /if ?>><?cs call:type_link2(cl,"true") ?></li><?cs + <li class="<?cs if:class.name == cl.label?>selected <?cs /if ?>api apilevel-<?cs var:cl.since ?>"><?cs call:type_link2(cl,"true") ?></li><?cs /each ?> </ul> </li><?cs @@ -436,7 +430,7 @@ def:list(label, classes) ?><?cs # A list of links to packages, for use in the side navigation of packages (panel nav) ?><?cs def:package_link_list(packages) ?><?cs each:pkg=packages ?> - <li<?cs if:(class.package.name == pkg.name) || (package.name == pkg.name)?> class="selected"<?cs /if ?>><?cs call:package_link(pkg) ?></li><?cs + <li class="<?cs if:(class.package.name == pkg.name) || (package.name == pkg.name)?>selected <?cs /if ?>api apilevel-<?cs var:pkg.since ?>"><?cs call:package_link(pkg) ?></li><?cs /each ?><?cs /def ?> diff --git a/src/com/google/doclava/AndroidAuxSource.java b/src/com/google/doclava/AndroidAuxSource.java index cfcc0ac..1c97b18 100644 --- a/src/com/google/doclava/AndroidAuxSource.java +++ b/src/com/google/doclava/AndroidAuxSource.java @@ -146,12 +146,11 @@ public class AndroidAuxSource implements AuxSource { // Document required permissions if ((type == TYPE_CLASS || type == TYPE_METHOD || type == TYPE_FIELD) && annotation.type().qualifiedNameMatches("android", "annotation.RequiresPermission")) { - ArrayList<AnnotationValueInfo> values = null; + ArrayList<AnnotationValueInfo> values = new ArrayList<>(); boolean any = false; for (AnnotationValueInfo val : annotation.elementValues()) { switch (val.element().name()) { case "value": - values = new ArrayList<AnnotationValueInfo>(); values.add(val); break; case "allOf": @@ -163,7 +162,7 @@ public class AndroidAuxSource implements AuxSource { break; } } - if (values == null || values.isEmpty()) continue; + if (values.isEmpty()) continue; ClassInfo permClass = annotation.type().findClass("android.Manifest.permission"); ArrayList<TagInfo> valueTags = new ArrayList<>(); diff --git a/src/com/google/doclava/Doclava.java b/src/com/google/doclava/Doclava.java index fe63038..fbde7d8 100644 --- a/src/com/google/doclava/Doclava.java +++ b/src/com/google/doclava/Doclava.java @@ -121,7 +121,6 @@ public class Doclava { public static boolean referenceOnly = false; public static boolean staticOnly = false; public static boolean yamlV2 = false; /* whether to build the new version of the yaml file */ - public static boolean devsite = false; /* whether to build docs for devsite */ public static AuxSource auxSource = new EmptyAuxSource(); public static Linter linter = new EmptyLinter(); public static boolean android = false; @@ -195,7 +194,6 @@ public class Doclava { HashSet<String> stubPackages = null; HashSet<String> stubImportPackages = null; boolean stubSourceOnly = false; - boolean keepStubComments = false; ArrayList<String> knownTagsFiles = new ArrayList<String>(); root = r; @@ -304,8 +302,6 @@ public class Doclava { } } else if (a[0].equals("-stubsourceonly")) { stubSourceOnly = true; - } else if (a[0].equals("-keepstubcomments")) { - keepStubComments = true; } else if (a[0].equals("-sdkvalues")) { sdkValuePath = a[1]; } else if (a[0].equals("-api")) { @@ -382,7 +378,6 @@ public class Doclava { } else if (a[0].equals("-yamlV2")) { yamlV2 = true; } else if (a[0].equals("-devsite")) { - devsite = true; // Don't copy any assets to devsite output includeAssets = false; USE_DEVSITE_LOCALE_OUTPUT_PATHS = true; @@ -392,8 +387,7 @@ public class Doclava { System.out.println(" ... Generating static html only for devsite"); } if (yamlNavFile == null) { - // Use _toc.yaml as default to avoid clobbering possible manual _book.yaml files - yamlNavFile = "_toc.yaml"; + yamlNavFile = "_book.yaml"; } } else if (a[0].equals("-android")) { auxSource = new AndroidAuxSource(); @@ -431,8 +425,9 @@ public class Doclava { } // If no custom template path is provided, and this is a devsite build, // then use the bundled templates-sdk/ files by default - if (templates.isEmpty() && devsite) { + if (templates.isEmpty() && USE_DEVSITE_LOCALE_OUTPUT_PATHS) { resourceLoaders.add(new ClassResourceLoader(Doclava.class, "/assets/templates-sdk")); + System.out.println("\n######### OK, Using templates-sdk ############\n"); } templates = ClearPage.getBundledTemplateDirs(); @@ -453,11 +448,7 @@ public class Doclava { if (NAVTREE_ONLY) { if (AT_LINKS_NAVTREE) { AtLinksNavTree.writeAtLinksNavTree(javadocDir); - } else if (yamlV2) { - // Generate DAC-formatted left-nav for devsite - NavTree.writeYamlTree2(javadocDir, yamlNavFile); } else { - // This shouldn't happen; this is the legacy DAC left nav file NavTree.writeNavTree(javadocDir, ""); } return true; @@ -528,19 +519,17 @@ public class Doclava { } else if(gcmRef){ refPrefix = "gcm-"; } + NavTree.writeNavTree(javadocDir, refPrefix); // Write yaml tree. - if (yamlNavFile != null) { + if (yamlNavFile != null){ + NavTree.writeYamlTree(javadocDir, yamlNavFile); if (yamlV2) { - // Generate DAC-formatted left-nav for devsite + // Generate both for good measure, to make transitions easier, but change the filename + // for the new one so there's yet another explicit opt-in required by fixing the name. + yamlNavFile = "_NEW" + yamlNavFile; NavTree.writeYamlTree2(javadocDir, yamlNavFile); - } else { - // Generate legacy devsite left-nav (shows sub-classes nested under parent class) - NavTree.writeYamlTree(javadocDir, yamlNavFile); } - } else { - // This shouldn't happen; this is the legacy DAC left nav file - NavTree.writeNavTree(javadocDir, refPrefix); } // Packages Pages @@ -568,7 +557,7 @@ public class Doclava { if (!sTaglist.isEmpty()) { PageMetadata.WriteListByLang(sTaglist); // For devsite (ds) reference only, write samples_metadata to out dir - if ((devsite) && (!DEVSITE_STATIC_ONLY)) { + if ((USE_DEVSITE_LOCALE_OUTPUT_PATHS) && (!DEVSITE_STATIC_ONLY)) { PageMetadata.WriteSamplesListByLang(sTaglist); } } @@ -580,7 +569,7 @@ public class Doclava { || privateApiFile != null || privateDexApiFile != null || apiMappingFile != null) { Stubs.writeStubsAndApi(stubsDir, apiFile, dexApiFile, proguardFile, removedApiFile, removedDexApiFile, exactApiFile, privateApiFile, privateDexApiFile, apiMappingFile, - stubPackages, stubImportPackages, stubSourceOnly, keepStubComments); + stubPackages, stubImportPackages, stubSourceOnly); } Errors.printErrors(); @@ -869,9 +858,6 @@ public class Doclava { if (option.equals("-stubsourceonly")) { return 1; } - if (option.equals("-keepstubcomments")) { - return 1; - } if (option.equals("-sdkvalues")) { return 2; } @@ -1220,7 +1206,7 @@ public class Doclava { // Write the lists for JD documents (if there are HTML directories to process) // Skip this for devsite builds - if ((inputPathHtmlDirs.size() > 0) && (!devsite)) { + if ((inputPathHtmlDirs.size() > 0) && (!USE_DEVSITE_LOCALE_OUTPUT_PATHS)) { Data jddata = makeHDF(); Iterator counter = new Iterator(); for (String htmlDir : inputPathHtmlDirs) { @@ -1582,11 +1568,8 @@ public class Doclava { setPageTitle(data, "Class Index"); ClearPage.write(data, "classes.cs", packageDir + "classes" + htmlExtension); - if (!devsite) { - // Index page redirects to the classes.html page, so use the same directory - // This page is not needed for devsite builds, which should instead use _redirects.yaml - writeIndex(packageDir); - } + // Index page redirects to the classes.html page, so use the same directory + writeIndex(packageDir); } // we use the word keywords because "index" means something else in html land diff --git a/src/com/google/doclava/MemberInfo.java b/src/com/google/doclava/MemberInfo.java index 2854ab5..797b1b9 100644 --- a/src/com/google/doclava/MemberInfo.java +++ b/src/com/google/doclava/MemberInfo.java @@ -59,7 +59,7 @@ public abstract class MemberInfo extends DocInfo implements Comparable, Scoped { public String anchor() { if (mSignature != null) { - return mName + mSignature.replace(" ", "%20"); + return mName + mSignature; } else { return mName; } diff --git a/src/com/google/doclava/NavTree.java b/src/com/google/doclava/NavTree.java index 3375df5..b4861c8 100644 --- a/src/com/google/doclava/NavTree.java +++ b/src/com/google/doclava/NavTree.java @@ -26,7 +26,6 @@ import java.util.TreeMap; public class NavTree { - /* @deprecated This method was used for an older version of DAC, circa 2012, retired May 2018 */ public static void writeNavTree(String dir, String refPrefix) { List<Node> children = new ArrayList<Node>(); for (PackageInfo pkg : Doclava.choosePackages()) { diff --git a/src/com/google/doclava/Stubs.java b/src/com/google/doclava/Stubs.java index 930d52c..0ef3749 100644 --- a/src/com/google/doclava/Stubs.java +++ b/src/com/google/doclava/Stubs.java @@ -49,8 +49,7 @@ public class Stubs { public static void writeStubsAndApi(String stubsDir, String apiFile, String dexApiFile, String keepListFile, String removedApiFile, String removedDexApiFile, String exactApiFile, String privateApiFile, String privateDexApiFile, String apiMappingFile, - HashSet<String> stubPackages, HashSet<String> stubImportPackages, boolean stubSourceOnly, - boolean keepStubComments) { + HashSet<String> stubPackages, HashSet<String> stubImportPackages, boolean stubSourceOnly) { // figure out which classes we need final HashSet<ClassInfo> notStrippable = new HashSet<ClassInfo>(); Collection<ClassInfo> all = Converter.allClasses(); @@ -260,7 +259,7 @@ public class Stubs { if (shouldWriteStub(cl.containingPackage().name(), stubPackages, stubPackageWildcards)) { // write out the stubs if (stubsDir != null) { - writeClassFile(stubsDir, notStrippable, cl, keepStubComments); + writeClassFile(stubsDir, notStrippable, cl); } // build class list for api file or keep list file if (apiWriter != null || dexApiWriter != null || keepListWriter != null) { @@ -589,7 +588,7 @@ public class Stubs { return dir + cl.name() + ".java"; } - static void writeClassFile(String stubsDir, HashSet<ClassInfo> notStrippable, ClassInfo cl, boolean keepStubComments) { + static void writeClassFile(String stubsDir, HashSet<ClassInfo> notStrippable, ClassInfo cl) { // inner classes are written by their containing class if (cl.containingClass() != null) { return; @@ -609,7 +608,7 @@ public class Stubs { PrintStream stream = null; try { stream = new PrintStream(new BufferedOutputStream(new FileOutputStream(file))); - writeClassFile(stream, notStrippable, cl, keepStubComments); + writeClassFile(stream, notStrippable, cl); } catch (FileNotFoundException e) { System.err.println("error writing file: " + filename); } finally { @@ -619,7 +618,7 @@ public class Stubs { } } - static void writeClassFile(PrintStream stream, HashSet<ClassInfo> notStrippable, ClassInfo cl, boolean keepStubComments) { + static void writeClassFile(PrintStream stream, HashSet<ClassInfo> notStrippable, ClassInfo cl) { PackageInfo pkg = cl.containingPackage(); if (cl.containingClass() == null) { stream.print(parseLicenseHeader(cl.position())); @@ -627,7 +626,7 @@ public class Stubs { if (pkg != null) { stream.println("package " + pkg.name() + ";"); } - writeClass(stream, notStrippable, cl, keepStubComments); + writeClass(stream, notStrippable, cl); } private static String parseLicenseHeader(/* @Nonnull */ SourcePositionInfo positionInfo) { @@ -678,11 +677,7 @@ public class Stubs { return builder.toString(); } - static void writeClass(PrintStream stream, HashSet<ClassInfo> notStrippable, ClassInfo cl, boolean keepStubComments) { - if (keepStubComments) { - writeComment(stream, cl); - } - + static void writeClass(PrintStream stream, HashSet<ClassInfo> notStrippable, ClassInfo cl) { writeAnnotations(stream, cl.annotations(), cl.isDeprecated()); stream.print(cl.scope() + " "); @@ -757,14 +752,14 @@ public class Stubs { for (ClassInfo inner : cl.getRealInnerClasses()) { if (notStrippable.contains(inner) && !inner.isDocOnly()) { - writeClass(stream, notStrippable, inner, keepStubComments); + writeClass(stream, notStrippable, inner); } } for (MethodInfo method : cl.constructors()) { if (!method.isDocOnly()) { - writeMethod(stream, method, true, keepStubComments); + writeMethod(stream, method, true); } } @@ -811,7 +806,7 @@ public class Stubs { } } if (!method.isDocOnly()) { - writeMethod(stream, method, false, keepStubComments); + writeMethod(stream, method, false); } } // Write all methods that are hidden or removed, but override abstract methods or interface methods. @@ -828,7 +823,7 @@ public class Stubs { (overriddenMethod.isAbstract() || overriddenMethod.containingClass().isInterface())) { method.setReason("1:" + classContainingMethod.qualifiedName()); cl.addMethod(method); - writeMethod(stream, method, false, keepStubComments); + writeMethod(stream, method, false); } } @@ -840,7 +835,7 @@ public class Stubs { for (FieldInfo field : cl.selfFields()) { if (!field.isDocOnly()) { - writeField(stream, field, keepStubComments); + writeField(stream, field); } } @@ -858,10 +853,7 @@ public class Stubs { stream.println("}"); } - static void writeMethod(PrintStream stream, MethodInfo method, boolean isConstructor, boolean keepStubComments) { - if (keepStubComments) { - writeComment(stream, method); - } + static void writeMethod(PrintStream stream, MethodInfo method, boolean isConstructor) { String comma; writeAnnotations(stream, method.annotations(), method.isDeprecated()); @@ -932,10 +924,7 @@ public class Stubs { } } - static void writeField(PrintStream stream, FieldInfo field, boolean keepStubComments) { - if (keepStubComments) { - writeComment(stream, field); - } + static void writeField(PrintStream stream, FieldInfo field) { writeAnnotations(stream, field.annotations(), field.isDeprecated()); stream.print(field.scope() + " "); @@ -1101,16 +1090,6 @@ public class Stubs { stream.println(";"); } - static void writeComment(PrintStream stream, DocInfo doc) { - if (!doc.isHiddenOrRemoved() && !doc.comment().isDocOnly() && !"".equals(doc.getRawCommentText())) { - String newLineSeparator = System.getProperty("line.separator"); - stream.println("/**"); - stream.print(" * "); - stream.println(doc.getRawCommentText().replace(newLineSeparator, newLineSeparator + " *")); - stream.println(" */"); - } - } - public static void writeXml(PrintStream xmlWriter, Collection<PackageInfo> pkgs, boolean strip) { if (strip) { Stubs.writeXml(xmlWriter, pkgs); |