diff options
author | Omari Stephens <xsdg@android.com> | 2015-08-14 16:47:48 -0700 |
---|---|---|
committer | Omari Stephens <xsdg@android.com> | 2015-08-14 18:48:24 -0700 |
commit | 7252230d33cf072b8cd053918a620518b8721117 (patch) | |
tree | 7aea85a92dc5fd0cfe22a519d5c675d4ea1f6078 | |
parent | 846e46861b23124b3360bac9bdc3ec587aaf60a5 (diff) | |
download | android_external_doclava-7252230d33cf072b8cd053918a620518b8721117.tar.gz android_external_doclava-7252230d33cf072b8cd053918a620518b8721117.tar.bz2 android_external_doclava-7252230d33cf072b8cd053918a620518b8721117.zip |
DO NOT MERGE Revert "D.N.M. Revert "Display annotations and annotation values when they are requested""
This reverts commit 846e46861b23124b3360bac9bdc3ec587aaf60a5.
Bug: 22723877
Bug: 8440225
Change-Id: I2242e0373e8073f589f88bc0eecdb7a72e376bc7
-rw-r--r-- | res/assets/templates/macros.cs | 35 | ||||
-rw-r--r-- | src/com/google/doclava/AnnotationInstanceInfo.java | 16 | ||||
-rw-r--r-- | src/com/google/doclava/MemberInfo.java | 15 |
3 files changed, 63 insertions, 3 deletions
diff --git a/res/assets/templates/macros.cs b/res/assets/templates/macros.cs index eed8737..16711c4 100644 --- a/res/assets/templates/macros.cs +++ b/res/assets/templates/macros.cs @@ -144,6 +144,41 @@ def:short_descr(obj) ?><?cs /if ?><?cs /def ?> + +<?cs +# Show a list of annotations associated with obj +# +# pre is an HTML string to start the list. +# between is an HTML string to include between each successive element. +# post is an HTML string to end the list. +# for example, call:show_annotations_list(cl, "<p>Annotations: ", "<br />", "</p>") +# ?><?cs +def:show_annotations_list(obj, pre, between, post) ?><?cs + each:anno = obj.showAnnotations ?><?cs + if:first(anno) ?><?cs + var:pre ?><?cs + /if ?> + @<?cs var:anno.type.label ?>(<?cs + each:elem = anno.elementValues ?><?cs + var:elem.name ?> = <?cs + var:elem.value ?><?cs + if:last(elem) == 0 ?>, <?cs + /if ?><?cs + /each ?>)<?cs + if:last(anno) == 0 ?><?cs + var:between ?><?cs + /if ?><?cs + if:last(anno) ?><?cs + var:post ?><?cs + /if ?><?cs + /each ?><?cs +/def ?> + +<?cs # Show a comma-separated list of annotations associated with obj ?><?cs +def:show_simple_annotations_list(obj, pre, post) ?><?cs + call:show_annotations_list(obj, pre, ", ", post) ?><?cs +/def ?> + <?cs # Show the red box with the deprecated warning ?><?cs def:deprecated_warning(obj) ?><?cs if:subcount(obj.deprecated) ?><p> diff --git a/src/com/google/doclava/AnnotationInstanceInfo.java b/src/com/google/doclava/AnnotationInstanceInfo.java index c72ca9a..d353426 100644 --- a/src/com/google/doclava/AnnotationInstanceInfo.java +++ b/src/com/google/doclava/AnnotationInstanceInfo.java @@ -120,13 +120,27 @@ public class AnnotationInstanceInfo implements Resolvable { return allResolved; } + /** + * Convert the specified list of {@code AnnotationInstanceInfo} into an HDF-formatted list, and + * add the HDF list into the specified {@code Data}. + */ public static void makeLinkListHDF(Data data, String base, AnnotationInstanceInfo[] annotations) { if (annotations == null) return; final int N = annotations.length; for (int i = 0; i < N; i++) { AnnotationInstanceInfo aii = annotations[i]; - aii.type().makeShortDescrHDF(data, base + "." + i); + final String aiiBase = base + "." + i; + + // Serialize data about the annotation element values + for (int elemIdx = 0; elemIdx < aii.elementValues().size(); ++elemIdx) { + final String elemBase = aiiBase + ".elementValues." + elemIdx; + final AnnotationValueInfo value = aii.elementValues().get(elemIdx); + data.setValue(elemBase + ".name", value.element().name()); + data.setValue(elemBase + ".value", value.valueString()); + } + + aii.type().makeShortDescrHDF(data, aiiBase); } } diff --git a/src/com/google/doclava/MemberInfo.java b/src/com/google/doclava/MemberInfo.java index 76087eb..da11360 100644 --- a/src/com/google/doclava/MemberInfo.java +++ b/src/com/google/doclava/MemberInfo.java @@ -143,9 +143,20 @@ public abstract class MemberInfo extends DocInfo implements Comparable, Scoped { return mContainingClass; } + /** + * Returns {@code true} if the member's scope is above the minimum requested scope passed to + * Doclava, <emph>or</emph> if the member is tagged with an annotation which was specified in a + * "-showAnnotation" argument to Doclava + */ public boolean checkLevel() { - return Doclava.checkLevel(mIsPublic, mIsProtected, mIsPackagePrivate, mIsPrivate, - isHiddenOrRemoved()); + if (Doclava.checkLevel(mIsPublic, mIsProtected, mIsPackagePrivate, mIsPrivate, + isHiddenOrRemoved())) { + return true; + } else if (mShowAnnotations != null && !mShowAnnotations.isEmpty()) { + return true; + } + + return false; } public String kind() { |