am 26333cad: add hdf variables for ndk tab docs
* commit '26333cad83ce2bd5d793c82f8af30b46dfe933a9':
add hdf variables for ndk tab docs
diff --git a/res/assets/templates/class.cs b/res/assets/templates/class.cs
index e8cdafd..ed8e7e5 100644
--- a/res/assets/templates/class.cs
+++ b/res/assets/templates/class.cs
@@ -155,9 +155,12 @@
<div class="jd-descr">
<?cs call:deprecated_warning(class) ?>
-<?cs if:subcount(class.descr) ?>
+<?cs if:subcount(class.descr) || subcount(class.annotationdocumentation) ?>
<h2>Class Overview</h2>
-<p itemprop="articleBody"><?cs call:tag_list(class.descr) ?></p>
+<?cs if:subcount(class.descr) ?><p itemprop="articleBody"><?cs call:tag_list(class.descr) ?></p><?cs /if ?>
+<?cs if:subcount(class.annotationdocumentation) ?><?cs each:annodoc = class.annotationdocumentation ?>
+<p><?cs var:annodoc.text ?></p>
+<?cs /each ?><?cs /if ?>
<?cs /if ?>
<?cs call:see_also_tags(class.seeAlso) ?>
diff --git a/res/assets/templates/macros.cs b/res/assets/templates/macros.cs
index 317b36e..eed8737 100644
--- a/res/assets/templates/macros.cs
+++ b/res/assets/templates/macros.cs
@@ -137,6 +137,10 @@
/if ?>
<?cs call:tag_list(obj.deprecated) ?></em><?cs
else ?><?cs call:tag_list(obj.shortDescr) ?><?cs
+ if:subcount(obj.annotationdocumentation)?><?cs
+ each:annodoc=obj.annotationdocumentation ?>
+ <div><?cs var:annodoc.text?></div><?cs
+ /each?><?cs /if?><?cs
/if ?><?cs
/def ?>
@@ -196,6 +200,10 @@
def:description(obj) ?><?cs
call:deprecated_warning(obj) ?>
<div class="jd-tagdata jd-tagdescr"><p><?cs call:tag_list(obj.descr) ?></p></div><?cs
+ if:subcount(obj.annotationdocumentation)?><?cs
+ each:annodoc=obj.annotationdocumentation ?>
+ <div class="jd-tagdata" style="display:block"><?cs var:annodoc.text?></div><?cs
+ /each?><?cs /if?><?cs
if:subcount(obj.attrRefs) ?>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Related XML Attributes</h5>
diff --git a/src/com/google/doclava/ClassInfo.java b/src/com/google/doclava/ClassInfo.java
index f5309bb..a5ee7d4 100644
--- a/src/com/google/doclava/ClassInfo.java
+++ b/src/com/google/doclava/ClassInfo.java
@@ -1234,6 +1234,17 @@
data.setValue("class.abstract", "abstract");
}
+ int numAnnotationDocumentation = 0;
+ for (AnnotationInstanceInfo aii : annotations()) {
+ String annotationDocumentation = Doclava.getDocumentationStringForAnnotation(
+ aii.type().qualifiedName());
+ if (annotationDocumentation != null) {
+ data.setValue("class.annotationdocumentation." + numAnnotationDocumentation + ".text",
+ annotationDocumentation);
+ numAnnotationDocumentation++;
+ }
+ }
+
ArrayList<AnnotationInstanceInfo> showAnnos = getShowAnnotationsIncludeOuters();
AnnotationInstanceInfo.makeLinkListHDF(
data,
@@ -1586,7 +1597,7 @@
}
public boolean hasShowAnnotation() {
- return mShowAnnotations.size() > 0;
+ return mShowAnnotations != null && mShowAnnotations.size() > 0;
}
public ArrayList<AnnotationInstanceInfo> showAnnotations() {
diff --git a/src/com/google/doclava/Doclava.java b/src/com/google/doclava/Doclava.java
index 6e46123..94331ee 100644
--- a/src/com/google/doclava/Doclava.java
+++ b/src/com/google/doclava/Doclava.java
@@ -95,6 +95,9 @@
private static boolean generateDocs = true;
private static boolean parseComments = false;
private static String yamlNavFile = null;
+ public static boolean documentAnnotations = false;
+ public static String documentAnnotationsPath = null;
+ public static Map<String, String> annotationDocumentationMap = null;
public static JSilver jSilver = null;
@@ -273,6 +276,9 @@
// Don't copy the doclava assets to devsite output (ie use proj assets only)
includeDefaultAssets = false;
outputPathHtmlDirs = outputPathHtmlDirs + "/" + devsiteRoot;
+ } else if (a[0].equals("-documentannotations")) {
+ documentAnnotations = true;
+ documentAnnotationsPath = a[1];
}
}
@@ -663,6 +669,9 @@
if (option.equals("-metadataDebug")) {
return 1;
}
+ if (option.equals("-documentannotations")) {
+ return 2;
+ }
return 0;
}
public static boolean validOptions(String[][] options, DocErrorReporter r) {
@@ -1816,4 +1825,31 @@
}
}
+ public static String getDocumentationStringForAnnotation(String annotationName) {
+ if (!documentAnnotations) return null;
+ if (annotationDocumentationMap == null) {
+ // parse the file for map
+ annotationDocumentationMap = new HashMap<String, String>();
+ try {
+ BufferedReader in = new BufferedReader(
+ new FileReader(documentAnnotationsPath));
+ try {
+ String line = in.readLine();
+ String[] split;
+ while (line != null) {
+ split = line.split(":");
+ annotationDocumentationMap.put(split[0], split[1]);
+ line = in.readLine();
+ }
+ } finally {
+ in.close();
+ }
+ } catch (IOException e) {
+ System.err.println("Unable to open annotations documentation file for reading: "
+ + documentAnnotationsPath);
+ }
+ }
+ return annotationDocumentationMap.get(annotationName);
+ }
+
}
diff --git a/src/com/google/doclava/MethodInfo.java b/src/com/google/doclava/MethodInfo.java
index eb360cd..f1659f3 100644
--- a/src/com/google/doclava/MethodInfo.java
+++ b/src/com/google/doclava/MethodInfo.java
@@ -592,6 +592,18 @@
TypeInfo.makeHDF(data, base + ".generic.typeArguments", mTypeParameters, false);
}
+ int numAnnotationDocumentation = 0;
+ for (AnnotationInstanceInfo aii : annotations()) {
+ String annotationDocumentation = Doclava.getDocumentationStringForAnnotation(
+ aii.type().qualifiedName());
+ if (annotationDocumentation != null) {
+ data.setValue(base + ".annotationdocumentation." + numAnnotationDocumentation + ".text",
+ annotationDocumentation);
+ numAnnotationDocumentation++;
+ }
+ }
+
+
AnnotationInstanceInfo.makeLinkListHDF(
data,
base + ".showAnnotations",