xref: /aosp_15_r20/external/doclava/res/assets/templates/macros.cs (revision feeed43c7c55e85932c547a3cefc559df175227c)
1*feeed43cSAndroid Build Coastguard Worker <?cs
2*feeed43cSAndroid Build Coastguard Worker # Set global vars for template features based on site and target.
3*feeed43cSAndroid Build Coastguard Worker ?><?cs
4*feeed43cSAndroid Build Coastguard Worker if:dac ?><?cs
5*feeed43cSAndroid Build Coastguard Worker   # standard devsite warns on inline js and script tags ?><?cs
6*feeed43cSAndroid Build Coastguard Worker   set:enable_javascript = 1 ?><?cs
7*feeed43cSAndroid Build Coastguard Worker /if ?>
8*feeed43cSAndroid Build Coastguard Worker 
9*feeed43cSAndroid Build Coastguard Worker <?cs # A link to a package ?><?cs
10*feeed43cSAndroid Build Coastguard Worker def:package_link(pkg) ?>
11*feeed43cSAndroid Build Coastguard Worker   <a href="<?cs
12*feeed43cSAndroid Build Coastguard Worker           if:!pkg.federatedSite ?><?cs
13*feeed43cSAndroid Build Coastguard Worker             var:toroot ?><?cs
14*feeed43cSAndroid Build Coastguard Worker           /if ?><?cs var:pkg.link ?>"><?cs var:pkg.name ?></a><?cs
15*feeed43cSAndroid Build Coastguard Worker   /def ?><?cs
16*feeed43cSAndroid Build Coastguard Worker 
17*feeed43cSAndroid Build Coastguard Worker # A link to a type, or not if it is a primitive type
18*feeed43cSAndroid Build Coastguard Worker         link: whether to create a link at the top level, always creates links in
19*feeed43cSAndroid Build Coastguard Worker               recursive invocations.
20*feeed43cSAndroid Build Coastguard Worker               Overloaded version to support use of 'nav' parameter, which when true,
21*feeed43cSAndroid Build Coastguard Worker               will not include the generics in the class name (good for sidenav lists)
22*feeed43cSAndroid Build Coastguard Worker         Expects the following fields:
23*feeed43cSAndroid Build Coastguard Worker             .name
24*feeed43cSAndroid Build Coastguard Worker             .link
25*feeed43cSAndroid Build Coastguard Worker             .isPrimitive
26*feeed43cSAndroid Build Coastguard Worker             .superBounds.N.(more links)   (... super ... & ...)
27*feeed43cSAndroid Build Coastguard Worker             .extendsBounds.N.(more links) (... extends ... & ...)
28*feeed43cSAndroid Build Coastguard Worker             .typeArguments.N.(more links) (< ... >) ?><?cs
29*feeed43cSAndroid Build Coastguard Worker def:type_link_impl(type, link) ?><?cs call:type_link_impl2(type, link, "false") ?><?cs /def ?><?cs
30*feeed43cSAndroid Build Coastguard Worker 
31*feeed43cSAndroid Build Coastguard Worker def:type_link_impl2(type, link, nav) ?><?cs
32*feeed43cSAndroid Build Coastguard Worker   if:type.link && link=="true" ?><?cs
33*feeed43cSAndroid Build Coastguard Worker     if:type.federated ?><a href="<?cs var:type.link ?>"><?cs
34*feeed43cSAndroid Build Coastguard Worker       var:type.label ?></a><?cs
35*feeed43cSAndroid Build Coastguard Worker     else ?><a href="<?cs var:toroot ?><?cs var:type.link ?>"><?cs var:type.label ?></a><?cs
36*feeed43cSAndroid Build Coastguard Worker     /if ?><?cs
37*feeed43cSAndroid Build Coastguard Worker   else ?><?cs var:type.label ?><?cs
38*feeed43cSAndroid Build Coastguard Worker   /if ?><?cs
39*feeed43cSAndroid Build Coastguard Worker   if:subcount(type.extendsBounds) ?><?cs
40*feeed43cSAndroid Build Coastguard Worker       each:t=type.extendsBounds ?><?cs
41*feeed43cSAndroid Build Coastguard Worker           if:first(t) ?>&nbsp;extends&nbsp;<?cs else ?>&nbsp;&amp;&nbsp;<?cs /if ?><?cs
42*feeed43cSAndroid Build Coastguard Worker           call:type_link_impl(t, "true") ?><?cs
43*feeed43cSAndroid Build Coastguard Worker       /each ?><?cs
44*feeed43cSAndroid Build Coastguard Worker   /if ?><?cs
45*feeed43cSAndroid Build Coastguard Worker   if:subcount(type.superBounds) ?><?cs
46*feeed43cSAndroid Build Coastguard Worker       each:t=type.superBounds ?><?cs
47*feeed43cSAndroid Build Coastguard Worker           if:first(t) ?>&nbsp;super&nbsp;<?cs else ?>&nbsp;&amp;&nbsp;<?cs /if ?><?cs
48*feeed43cSAndroid Build Coastguard Worker           call:type_link_impl(t, "true") ?><?cs
49*feeed43cSAndroid Build Coastguard Worker       /each ?><?cs
50*feeed43cSAndroid Build Coastguard Worker   /if ?><?cs
51*feeed43cSAndroid Build Coastguard Worker   if:subcount(type.typeArguments) && nav=="false"
52*feeed43cSAndroid Build Coastguard Worker       ?>&lt;<?cs each:t=type.typeArguments ?><?cs call:type_link_impl(t, "true") ?><?cs
53*feeed43cSAndroid Build Coastguard Worker           if:!last(t) ?>,&nbsp;<?cs /if ?><?cs
54*feeed43cSAndroid Build Coastguard Worker       /each ?>&gt;<?cs
55*feeed43cSAndroid Build Coastguard Worker   /if ?><?cs
56*feeed43cSAndroid Build Coastguard Worker /def ?><?cs
57*feeed43cSAndroid Build Coastguard Worker 
58*feeed43cSAndroid Build Coastguard Worker def:simple_type_link(type)?><?cs
59*feeed43cSAndroid Build Coastguard Worker   if:type.link?><?cs
60*feeed43cSAndroid Build Coastguard Worker     if:type.federated ?><a href="<?cs var:type.link ?>"><?cs var:type.label ?></a><?cs
61*feeed43cSAndroid Build Coastguard Worker     else ?><a href="<?cs var:toroot ?><?cs var:type.link ?>"><?cs var:type.label ?></a><?cs
62*feeed43cSAndroid Build Coastguard Worker     /if?><?cs
63*feeed43cSAndroid Build Coastguard Worker   else ?><?cs var:type.label ?><?cs
64*feeed43cSAndroid Build Coastguard Worker   /if?><?cs
65*feeed43cSAndroid Build Coastguard Worker   if:subcount(type.typeArguments)?>&lt;<?cs
66*feeed43cSAndroid Build Coastguard Worker     each:t=type.typeArguments?><?cs
67*feeed43cSAndroid Build Coastguard Worker       call:type_link_impl(t, "true")?><?cs
68*feeed43cSAndroid Build Coastguard Worker       if:!last(t) ?>,&nbsp;<?cs
69*feeed43cSAndroid Build Coastguard Worker       /if ?><?cs
70*feeed43cSAndroid Build Coastguard Worker     /each ?>&gt;<?cs
71*feeed43cSAndroid Build Coastguard Worker   /if ?><?cs
72*feeed43cSAndroid Build Coastguard Worker /def ?><?cs
73*feeed43cSAndroid Build Coastguard Worker 
74*feeed43cSAndroid Build Coastguard Worker def:class_name(type) ?><?cs call:type_link_impl(type, "false") ?><?cs
75*feeed43cSAndroid Build Coastguard Worker /def ?><?cs
76*feeed43cSAndroid Build Coastguard Worker def:type_link2(type,nav) ?><?cs call:type_link_impl2(type, "true", nav) ?><?cs
77*feeed43cSAndroid Build Coastguard Worker /def ?><?cs
78*feeed43cSAndroid Build Coastguard Worker def:type_link(type) ?><?cs call:type_link2(type, "false") ?><?cs
79*feeed43cSAndroid Build Coastguard Worker /def ?><?cs
80*feeed43cSAndroid Build Coastguard Worker 
81*feeed43cSAndroid Build Coastguard Worker # a conditional link.
82*feeed43cSAndroid Build Coastguard Worker   if the "condition" parameter evals to true then the link is displayed
83*feeed43cSAndroid Build Coastguard Worker   otherwise only the text is displayed ?><?cs
84*feeed43cSAndroid Build Coastguard Worker def:cond_link(text, root, path, condition) ?><?cs
85*feeed43cSAndroid Build Coastguard Worker   if:condition ?><a href="<?cs var:root ?><?cs
86*feeed43cSAndroid Build Coastguard Worker   var:path ?>"><?cs /if ?><?cs var:text ?><?cs
87*feeed43cSAndroid Build Coastguard Worker   if:condition ?></a><?cs /if ?><?cs
88*feeed43cSAndroid Build Coastguard Worker /def ?><?cs
89*feeed43cSAndroid Build Coastguard Worker 
90*feeed43cSAndroid Build Coastguard Worker # A comma separated parameter list ?><?cs
91*feeed43cSAndroid Build Coastguard Worker def:parameter_list(params) ?><?cs
92*feeed43cSAndroid Build Coastguard Worker   each:param = params ?><?cs
93*feeed43cSAndroid Build Coastguard Worker       call:simple_type_link(param.type)?> <?cs
94*feeed43cSAndroid Build Coastguard Worker       var:param.name ?><?cs
95*feeed43cSAndroid Build Coastguard Worker       if: name(param)!=subcount(params)-1?>, <?cs /if ?><?cs
96*feeed43cSAndroid Build Coastguard Worker   /each ?><?cs
97*feeed43cSAndroid Build Coastguard Worker /def ?><?cs
98*feeed43cSAndroid Build Coastguard Worker 
99*feeed43cSAndroid Build Coastguard Worker def:doc_root_override()
100*feeed43cSAndroid Build Coastguard Worker   ?><?cs var:toroot ?><?cs
101*feeed43cSAndroid Build Coastguard Worker /def ?><?cs
102*feeed43cSAndroid Build Coastguard Worker # Print a list of tags (e.g. description text ?><?cs
103*feeed43cSAndroid Build Coastguard Worker def:tag_list(tags) ?><?cs
104*feeed43cSAndroid Build Coastguard Worker   each:tag = tags ?><?cs
105*feeed43cSAndroid Build Coastguard Worker       if:tag.name == "Text" ?><?cs var:tag.text?><?cs
106*feeed43cSAndroid Build Coastguard Worker       elif:tag.kind == "@more" ?><p><?cs
107*feeed43cSAndroid Build Coastguard Worker       elif:tag.kind == "@see" ?><code><a href="<?cs
108*feeed43cSAndroid Build Coastguard Worker         if:!tag.federatedSite ?><?cs
109*feeed43cSAndroid Build Coastguard Worker           var:toroot ?><?cs
110*feeed43cSAndroid Build Coastguard Worker         /if ?><?cs var:tag.href ?>"><?cs var:tag.label ?></a></code><?cs
111*feeed43cSAndroid Build Coastguard Worker       elif:tag.kind == "@linkplain" ?><a href="<?cs
112*feeed43cSAndroid Build Coastguard Worker         if:!tag.federatedSite ?><?cs
113*feeed43cSAndroid Build Coastguard Worker           var:toroot ?><?cs
114*feeed43cSAndroid Build Coastguard Worker         /if ?><?cs var:tag.href ?>"><?cs var:tag.label ?></a></a><?cs
115*feeed43cSAndroid Build Coastguard Worker       elif:tag.kind == "@seeHref" ?><a href="<?cs var:tag.href ?>"><?cs var:tag.label ?></a><?cs
116*feeed43cSAndroid Build Coastguard Worker       elif:tag.kind == "@seeJustLabel" ?><?cs var:tag.label ?><?cs
117*feeed43cSAndroid Build Coastguard Worker       elif:tag.kind == "@value" ?><code><a href="<?cs
118*feeed43cSAndroid Build Coastguard Worker         if:!tag.federatedSite ?><?cs
119*feeed43cSAndroid Build Coastguard Worker           var:toroot ?><?cs
120*feeed43cSAndroid Build Coastguard Worker         /if ?><?cs var:tag.href ?>"><?cs var:tag.text ?></a></code><?cs
121*feeed43cSAndroid Build Coastguard Worker       elif:tag.kind == "@code" ?><code><?cs var:tag.text ?></code><?cs
122*feeed43cSAndroid Build Coastguard Worker       elif:tag.kind == "@samplecode" ?><pre><?cs var:tag.text ?></pre><?cs
123*feeed43cSAndroid Build Coastguard Worker       elif:tag.name == "@sample" ?><pre><?cs var:tag.text ?></pre><?cs
124*feeed43cSAndroid Build Coastguard Worker       elif:tag.name == "@include" ?><?cs var:tag.text ?><?cs
125*feeed43cSAndroid Build Coastguard Worker       elif:tag.kind == "@docRoot" ?><?cs call:doc_root_override() ?><?cs
126*feeed43cSAndroid Build Coastguard Worker       elif:tag.kind == "@sdkCurrent" ?><?cs var:sdk.current ?><?cs
127*feeed43cSAndroid Build Coastguard Worker       elif:tag.kind == "@sdkCurrentVersion" ?><?cs var:sdk.version ?><?cs
128*feeed43cSAndroid Build Coastguard Worker       elif:tag.kind == "@sdkCurrentRelId" ?><?cs var:sdk.rel.id ?><?cs
129*feeed43cSAndroid Build Coastguard Worker       elif:tag.kind == "@sdkPlatformVersion" ?><?cs var:sdk.platform.version ?><?cs
130*feeed43cSAndroid Build Coastguard Worker       elif:tag.kind == "@sdkPlatformApiLevel" ?><?cs var:sdk.platform.apiLevel ?><?cs
131*feeed43cSAndroid Build Coastguard Worker       elif:tag.kind == "@sdkPlatformMajorMinor" ?><?cs var:sdk.platform.majorMinor ?><?cs
132*feeed43cSAndroid Build Coastguard Worker       elif:tag.kind == "@sdkPlatformReleaseDate" ?><?cs var:sdk.platform.releaseDate ?><?cs
133*feeed43cSAndroid Build Coastguard Worker       elif:tag.kind == "@sdkPlatformDeployableDate" ?><?cs var:sdk.platform.deployableDate ?><?cs
134*feeed43cSAndroid Build Coastguard Worker       elif:tag.kind == "@adtZipVersion" ?><?cs var:adt.zip.version ?><?cs
135*feeed43cSAndroid Build Coastguard Worker       elif:tag.kind == "@adtZipDownload" ?><?cs var:adt.zip.download ?><?cs
136*feeed43cSAndroid Build Coastguard Worker       elif:tag.kind == "@adtZipBytes" ?><?cs var:adt.zip.bytes ?><?cs
137*feeed43cSAndroid Build Coastguard Worker       elif:tag.kind == "@adtZipChecksum" ?><?cs var:adt.zip.checksum ?><?cs
138*feeed43cSAndroid Build Coastguard Worker       elif:tag.kind == "@inheritDoc" ?><?cs # This is the case when @inheritDoc is in something
139*feeed43cSAndroid Build Coastguard Worker                                               that does not inherit from anything?><?cs
140*feeed43cSAndroid Build Coastguard Worker       elif:tag.kind == "@attr" ?><?cs
141*feeed43cSAndroid Build Coastguard Worker       elif:tag.kind == "@usesMathJax" ?><?cs
142*feeed43cSAndroid Build Coastguard Worker         if:devsite ?><script src="/_static/js/managed/mathjax/MathJax.js?config=TeX-AMS_SVG"></script><?cs
143*feeed43cSAndroid Build Coastguard Worker         else ?><script src="https://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS_SVG"></script><?cs
144*feeed43cSAndroid Build Coastguard Worker         /if ?><?cs
145*feeed43cSAndroid Build Coastguard Worker       else ?>{<?cs var:tag.name?> <?cs var:tag.text ?>}<?cs
146*feeed43cSAndroid Build Coastguard Worker       /if ?><?cs
147*feeed43cSAndroid Build Coastguard Worker   /each ?><?cs
148*feeed43cSAndroid Build Coastguard Worker /def ?><?cs
149*feeed43cSAndroid Build Coastguard Worker 
150*feeed43cSAndroid Build Coastguard Worker # Print output for block tags that are not "standard" javadoc tags ?><?cs
151*feeed43cSAndroid Build Coastguard Worker def:block_tag_list(tags) ?><?cs
152*feeed43cSAndroid Build Coastguard Worker   each:tag = tags ?><?cs
153*feeed43cSAndroid Build Coastguard Worker       if:tag.kind == "@apiNote" ?>
154*feeed43cSAndroid Build Coastguard Worker         <div class="jd-tagdata">
155*feeed43cSAndroid Build Coastguard Worker           <h5 class="jd-tagtitle">API Note:</h5>
156*feeed43cSAndroid Build Coastguard Worker           <ul class="nolist"><li><?cs call:tag_list(tag.commentTags) ?></li></ul>
157*feeed43cSAndroid Build Coastguard Worker         </div><?cs
158*feeed43cSAndroid Build Coastguard Worker       /if ?><?cs
159*feeed43cSAndroid Build Coastguard Worker       if:tag.kind == "@implSpec" ?>
160*feeed43cSAndroid Build Coastguard Worker         <div class="jd-tagdata">
161*feeed43cSAndroid Build Coastguard Worker           <h5 class="jd-tagtitle">Implementation Requirements:</h5>
162*feeed43cSAndroid Build Coastguard Worker           <ul class="nolist"><li><?cs call:tag_list(tag.commentTags) ?></li></ul>
163*feeed43cSAndroid Build Coastguard Worker         </div><?cs
164*feeed43cSAndroid Build Coastguard Worker       /if ?><?cs
165*feeed43cSAndroid Build Coastguard Worker       if:tag.kind == "@implNote" ?>
166*feeed43cSAndroid Build Coastguard Worker         <div class="jd-tagdata">
167*feeed43cSAndroid Build Coastguard Worker           <h5 class="jd-tagtitle">Implementation Note:</h5>
168*feeed43cSAndroid Build Coastguard Worker           <ul class="nolist"><li><?cs call:tag_list(tag.commentTags) ?></li></ul>
169*feeed43cSAndroid Build Coastguard Worker         </div><?cs
170*feeed43cSAndroid Build Coastguard Worker       /if ?><?cs
171*feeed43cSAndroid Build Coastguard Worker   /each ?><?cs
172*feeed43cSAndroid Build Coastguard Worker /def ?><?cs
173*feeed43cSAndroid Build Coastguard Worker 
174*feeed43cSAndroid Build Coastguard Worker # Print output for aux tags that are not "standard" javadoc tags ?><?cs
175*feeed43cSAndroid Build Coastguard Worker def:aux_tag_list(tags) ?><?cs
176*feeed43cSAndroid Build Coastguard Worker /def ?><?cs
177*feeed43cSAndroid Build Coastguard Worker 
178*feeed43cSAndroid Build Coastguard Worker # Show the short-form description of something.  These come from shortDescr and deprecated ?><?cs
179*feeed43cSAndroid Build Coastguard Worker def:short_descr(obj) ?><?cs
180*feeed43cSAndroid Build Coastguard Worker   if:subcount(obj.deprecated) ?><em><?cs
181*feeed43cSAndroid Build Coastguard Worker     if:obj.deprecatedsince ?>
182*feeed43cSAndroid Build Coastguard Worker       This <?cs var:obj.kind ?> was deprecated
183*feeed43cSAndroid Build Coastguard Worker       in API level <?cs var:obj.deprecatedsince ?>.<?cs
184*feeed43cSAndroid Build Coastguard Worker     else ?>
185*feeed43cSAndroid Build Coastguard Worker       This <?cs var:obj.kind ?> is deprecated.<?cs
186*feeed43cSAndroid Build Coastguard Worker     /if ?>
187*feeed43cSAndroid Build Coastguard Worker     <?cs call:tag_list(obj.deprecated) ?></em><?cs
188*feeed43cSAndroid Build Coastguard Worker   else ?><?cs call:tag_list(obj.shortDescr) ?><?cs
189*feeed43cSAndroid Build Coastguard Worker   if:subcount(obj.annotationdocumentation)?><?cs
190*feeed43cSAndroid Build Coastguard Worker     each:annodoc=obj.annotationdocumentation ?>
191*feeed43cSAndroid Build Coastguard Worker     <div><?cs var:annodoc.text?></div><?cs
192*feeed43cSAndroid Build Coastguard Worker     /each?><?cs /if?><?cs
193*feeed43cSAndroid Build Coastguard Worker   /if ?><?cs
194*feeed43cSAndroid Build Coastguard Worker /def ?><?cs
195*feeed43cSAndroid Build Coastguard Worker 
196*feeed43cSAndroid Build Coastguard Worker # Show a list of annotations associated with obj
197*feeed43cSAndroid Build Coastguard Worker #
198*feeed43cSAndroid Build Coastguard Worker # pre is an HTML string to start the list.
199*feeed43cSAndroid Build Coastguard Worker # between is an HTML string to include between each successive element.
200*feeed43cSAndroid Build Coastguard Worker # post is an HTML string to end the list.
201*feeed43cSAndroid Build Coastguard Worker # for example, call:show_annotations_list(cl, "<p>Annotations: ", "<br />", "</p>")
202*feeed43cSAndroid Build Coastguard Worker # ?><?cs
203*feeed43cSAndroid Build Coastguard Worker def:show_annotations_list(obj, pre, between, post) ?><?cs
204*feeed43cSAndroid Build Coastguard Worker   each:anno = obj.showAnnotations ?><?cs
205*feeed43cSAndroid Build Coastguard Worker     if:first(anno) ?><?cs
206*feeed43cSAndroid Build Coastguard Worker       var:pre ?><?cs
207*feeed43cSAndroid Build Coastguard Worker     /if ?>
208*feeed43cSAndroid Build Coastguard Worker     @<?cs var:anno.type.label ?>(<?cs
209*feeed43cSAndroid Build Coastguard Worker     each:elem = anno.elementValues ?><?cs
210*feeed43cSAndroid Build Coastguard Worker       var:elem.name ?>&nbsp;=&nbsp;<?cs
211*feeed43cSAndroid Build Coastguard Worker       var:elem.value ?><?cs
212*feeed43cSAndroid Build Coastguard Worker       if:last(elem) == 0 ?>, <?cs
213*feeed43cSAndroid Build Coastguard Worker       /if ?><?cs
214*feeed43cSAndroid Build Coastguard Worker     /each ?>)<?cs
215*feeed43cSAndroid Build Coastguard Worker     if:last(anno) == 0 ?><?cs
216*feeed43cSAndroid Build Coastguard Worker       var:between ?><?cs
217*feeed43cSAndroid Build Coastguard Worker     /if ?><?cs
218*feeed43cSAndroid Build Coastguard Worker     if:last(anno) ?><?cs
219*feeed43cSAndroid Build Coastguard Worker       var:post ?><?cs
220*feeed43cSAndroid Build Coastguard Worker     /if ?><?cs
221*feeed43cSAndroid Build Coastguard Worker   /each ?><?cs
222*feeed43cSAndroid Build Coastguard Worker /def ?><?cs
223*feeed43cSAndroid Build Coastguard Worker 
224*feeed43cSAndroid Build Coastguard Worker # Show a comma-separated list of annotations associated with obj ?><?cs
225*feeed43cSAndroid Build Coastguard Worker def:show_simple_annotations_list(obj, pre, post) ?><?cs
226*feeed43cSAndroid Build Coastguard Worker   call:show_annotations_list(obj, pre, ", ", post) ?><?cs
227*feeed43cSAndroid Build Coastguard Worker /def ?><?cs
228*feeed43cSAndroid Build Coastguard Worker 
229*feeed43cSAndroid Build Coastguard Worker # Show the red box with the deprecated warning ?><?cs
230*feeed43cSAndroid Build Coastguard Worker def:deprecated_warning(obj) ?><?cs
231*feeed43cSAndroid Build Coastguard Worker   if:subcount(obj.deprecated) ?><p>
232*feeed43cSAndroid Build Coastguard Worker   <p class="caution"><strong><?cs
233*feeed43cSAndroid Build Coastguard Worker     if:obj.deprecatedsince ?>
234*feeed43cSAndroid Build Coastguard Worker       This <?cs var:obj.kind ?> was deprecated
235*feeed43cSAndroid Build Coastguard Worker       in API level <?cs var:obj.deprecatedsince ?>.<?cs
236*feeed43cSAndroid Build Coastguard Worker     else ?>
237*feeed43cSAndroid Build Coastguard Worker       This <?cs var:obj.kind ?> is deprecated.<?cs
238*feeed43cSAndroid Build Coastguard Worker     /if ?></strong><br/>
239*feeed43cSAndroid Build Coastguard Worker     <?cs call:tag_list(obj.deprecated) ?>
240*feeed43cSAndroid Build Coastguard Worker   </p><?cs
241*feeed43cSAndroid Build Coastguard Worker   /if ?><?cs
242*feeed43cSAndroid Build Coastguard Worker /def ?><?cs
243*feeed43cSAndroid Build Coastguard Worker 
244*feeed43cSAndroid Build Coastguard Worker # print the See Also: section ?><?cs
245*feeed43cSAndroid Build Coastguard Worker def:see_also_tags(also) ?><?cs
246*feeed43cSAndroid Build Coastguard Worker   if:subcount(also) ?>
247*feeed43cSAndroid Build Coastguard Worker   <div>
248*feeed43cSAndroid Build Coastguard Worker       <p><b>See also:</b></p>
249*feeed43cSAndroid Build Coastguard Worker       <ul class="nolist"><?cs
250*feeed43cSAndroid Build Coastguard Worker         each:tag=also ?><li><?cs
251*feeed43cSAndroid Build Coastguard Worker             if:tag.kind == "@see" ?><code><a href="<?cs
252*feeed43cSAndroid Build Coastguard Worker                     if:!tag.federatedSite ?><?cs
253*feeed43cSAndroid Build Coastguard Worker                       var:toroot ?><?cs
254*feeed43cSAndroid Build Coastguard Worker                     /if ?><?cs var:tag.href ?>"><?cs
255*feeed43cSAndroid Build Coastguard Worker                     var:tag.label ?></a></code><?cs
256*feeed43cSAndroid Build Coastguard Worker             elif:tag.kind == "@seeHref" ?><a href="<?cs var:tag.href ?>"><?cs var:tag.label ?></a><?cs
257*feeed43cSAndroid Build Coastguard Worker             elif:tag.kind == "@seeJustLabel" ?><?cs var:tag.label ?><?cs
258*feeed43cSAndroid Build Coastguard Worker             else ?>[ERROR: Unknown @see kind]<?cs
259*feeed43cSAndroid Build Coastguard Worker             /if ?></li><?cs
260*feeed43cSAndroid Build Coastguard Worker         /each ?>
261*feeed43cSAndroid Build Coastguard Worker       </ul>
262*feeed43cSAndroid Build Coastguard Worker   </div><?cs
263*feeed43cSAndroid Build Coastguard Worker   /if ?>
264*feeed43cSAndroid Build Coastguard Worker <?cs /def ?><?cs
265*feeed43cSAndroid Build Coastguard Worker 
266*feeed43cSAndroid Build Coastguard Worker # print the API Level ?><?cs
267*feeed43cSAndroid Build Coastguard Worker def:since_tags(obj) ?><?cs
268*feeed43cSAndroid Build Coastguard Worker if:reference.apilevels && obj.since ?><?cs
269*feeed43cSAndroid Build Coastguard Worker   if:string.slice(obj.since,0,1) > 0 ?>
270*feeed43cSAndroid Build Coastguard Worker     Added in <?cs
271*feeed43cSAndroid Build Coastguard Worker       if:string.find(obj.since,'.') > -1
272*feeed43cSAndroid Build Coastguard Worker         ?><a href="<?cs var:toroot ?>topic/libraries/support-library/revisions.html">version<?cs
273*feeed43cSAndroid Build Coastguard Worker       else
274*feeed43cSAndroid Build Coastguard Worker         ?><a href="<?cs var:toroot ?>guide/topics/manifest/uses-sdk-element.html#ApiLevels">API level<?cs
275*feeed43cSAndroid Build Coastguard Worker       /if ?> <?cs
276*feeed43cSAndroid Build Coastguard Worker     var:obj.since ?></a><?cs if:obj.sdkextsince ?><br/>Also in <a href="<?cs var:toroot ?>sdkExtensions"><?cs var:obj.sdkextsince ?></a><?cs /if ?><?cs
277*feeed43cSAndroid Build Coastguard Worker   else ?><a data-version-added="<?cs var:obj.since ?>" href="<?cs var:toroot ?>preview/"><b>Added in Android <?cs
278*feeed43cSAndroid Build Coastguard Worker     var:obj.since ?></b></a><?cs if:obj.sdkextsince ?><br/>Also in <a href="<?cs var:toroot ?>sdkExtensions"><?cs var:obj.sdkextsince ?></a><?cs /if ?><?cs
279*feeed43cSAndroid Build Coastguard Worker   /if?><?cs
280*feeed43cSAndroid Build Coastguard Worker elif:obj.sdkextsince ?>
281*feeed43cSAndroid Build Coastguard Worker   <?cs # This symbol exists in an extension SDK, but not in a finalized dessert ?>
282*feeed43cSAndroid Build Coastguard Worker   Added in <a href="<?cs var:toroot ?>sdkExtensions"><?cs var:obj.sdkextsince ?></a>
283*feeed43cSAndroid Build Coastguard Worker <?cs
284*feeed43cSAndroid Build Coastguard Worker /if ?>
285*feeed43cSAndroid Build Coastguard Worker   <?cs if:obj.deprecatedsince ?><?cs
286*feeed43cSAndroid Build Coastguard Worker     if:class.artifact ?><br>Deprecated in version <?cs var:obj.deprecatedsince ?><?cs
287*feeed43cSAndroid Build Coastguard Worker     else ?><br>Deprecated in
288*feeed43cSAndroid Build Coastguard Worker     <a href="<?cs var:toroot ?>guide/topics/manifest/uses-sdk-element.html#ApiLevels">API level
289*feeed43cSAndroid Build Coastguard Worker       <?cs var:obj.deprecatedsince ?></a><?cs
290*feeed43cSAndroid Build Coastguard Worker     /if ?>
291*feeed43cSAndroid Build Coastguard Worker   <?cs /if ?><?cs
292*feeed43cSAndroid Build Coastguard Worker /def ?><?cs
293*feeed43cSAndroid Build Coastguard Worker 
294*feeed43cSAndroid Build Coastguard Worker # print the artifact ?><?cs
295*feeed43cSAndroid Build Coastguard Worker def:artifact_tags(obj) ?><?cs
296*feeed43cSAndroid Build Coastguard Worker if:reference.artifacts && obj.artifact ?>
297*feeed43cSAndroid Build Coastguard Worker   belongs to Maven artifact <?cs var:obj.artifact ?></a><?cs
298*feeed43cSAndroid Build Coastguard Worker /if ?><?cs
299*feeed43cSAndroid Build Coastguard Worker /def ?><?cs
300*feeed43cSAndroid Build Coastguard Worker 
301*feeed43cSAndroid Build Coastguard Worker def:federated_refs(obj) ?>
302*feeed43cSAndroid Build Coastguard Worker   <?cs if:subcount(obj.federated) ?>
303*feeed43cSAndroid Build Coastguard Worker     <div>
304*feeed43cSAndroid Build Coastguard Worker     Also:
305*feeed43cSAndroid Build Coastguard Worker     <?cs each:federated=obj.federated ?>
306*feeed43cSAndroid Build Coastguard Worker       <a href="<?cs var:federated.url ?>"><?cs var:federated.name ?></a><?cs
307*feeed43cSAndroid Build Coastguard Worker       if:!last(federated) ?>,<?cs /if ?>
308*feeed43cSAndroid Build Coastguard Worker     <?cs /each ?>
309*feeed43cSAndroid Build Coastguard Worker     </div>
310*feeed43cSAndroid Build Coastguard Worker   <?cs /if ?>
311*feeed43cSAndroid Build Coastguard Worker <?cs /def ?><?cs
312*feeed43cSAndroid Build Coastguard Worker 
313*feeed43cSAndroid Build Coastguard Worker #
314*feeed43cSAndroid Build Coastguard Worker # Print the long-form description for something.
315*feeed43cSAndroid Build Coastguard Worker # Uses the following fields: deprecated descr seeAlso since
316*feeed43cSAndroid Build Coastguard Worker #
317*feeed43cSAndroid Build Coastguard Worker ?><?cs
318*feeed43cSAndroid Build Coastguard Worker def:description(obj) ?><?cs
319*feeed43cSAndroid Build Coastguard Worker   call:deprecated_warning(obj) ?>
320*feeed43cSAndroid Build Coastguard Worker   <p><?cs call:tag_list(obj.descr) ?></p><?cs
321*feeed43cSAndroid Build Coastguard Worker   call:aux_tag_list(obj.descrAux) ?><?cs
322*feeed43cSAndroid Build Coastguard Worker   if:subcount(obj.annotationdocumentation)?><?cs
323*feeed43cSAndroid Build Coastguard Worker     each:annodoc=obj.annotationdocumentation ?>
324*feeed43cSAndroid Build Coastguard Worker     <div><?cs var:annodoc.text?></div><?cs
325*feeed43cSAndroid Build Coastguard Worker     /each?><?cs /if?><?cs
326*feeed43cSAndroid Build Coastguard Worker   if:subcount(obj.attrRefs) ?>
327*feeed43cSAndroid Build Coastguard Worker       <p><b>Related XML Attributes:</b></p>
328*feeed43cSAndroid Build Coastguard Worker       <ul class="nolist"><?cs
329*feeed43cSAndroid Build Coastguard Worker         each:attr=obj.attrRefs ?>
330*feeed43cSAndroid Build Coastguard Worker             <li><a href="<?cs
331*feeed43cSAndroid Build Coastguard Worker                     if:!attr.federatedSite ?><?cs
332*feeed43cSAndroid Build Coastguard Worker                       var:toroot ?><?cs
333*feeed43cSAndroid Build Coastguard Worker                     /if ?><?cs var:attr.href ?>"><?cs var:attr.name ?></a></li><?cs
334*feeed43cSAndroid Build Coastguard Worker         /each ?>
335*feeed43cSAndroid Build Coastguard Worker       </ul><?cs
336*feeed43cSAndroid Build Coastguard Worker   /if ?><?cs
337*feeed43cSAndroid Build Coastguard Worker   if:subcount(obj.blockTags) ?>
338*feeed43cSAndroid Build Coastguard Worker     <?cs call:block_tag_list(obj.blockTags) ?><?cs
339*feeed43cSAndroid Build Coastguard Worker   /if ?><?cs
340*feeed43cSAndroid Build Coastguard Worker   #
341*feeed43cSAndroid Build Coastguard Worker   # Print the @param tags
342*feeed43cSAndroid Build Coastguard Worker   #
343*feeed43cSAndroid Build Coastguard Worker   ?><?cs
344*feeed43cSAndroid Build Coastguard Worker   if:subcount(obj.paramTags) ?>
345*feeed43cSAndroid Build Coastguard Worker     <table class="responsive">
346*feeed43cSAndroid Build Coastguard Worker     <tr><th colspan=2>Parameters</th></tr><?cs
347*feeed43cSAndroid Build Coastguard Worker     each:param=obj.paramTags ?>
348*feeed43cSAndroid Build Coastguard Worker       <tr>
349*feeed43cSAndroid Build Coastguard Worker         <td><code><?cs
350*feeed43cSAndroid Build Coastguard Worker           if:param.isTypeParameter ?>&lt;<?cs
351*feeed43cSAndroid Build Coastguard Worker           /if ?><?cs var:param.name ?><?cs
352*feeed43cSAndroid Build Coastguard Worker           if:param.isTypeParameter ?>&gt;<?cs
353*feeed43cSAndroid Build Coastguard Worker           /if ?></code></td>
354*feeed43cSAndroid Build Coastguard Worker         <td width="100%">
355*feeed43cSAndroid Build Coastguard Worker           <code><?cs var:param.kind ?></code><?cs
356*feeed43cSAndroid Build Coastguard Worker           if:string.find(param.comment.0.text, "<!--") != 0
357*feeed43cSAndroid Build Coastguard Worker             ?>:<?cs # Do not print if param comment is an HTML comment ?><?cs
358*feeed43cSAndroid Build Coastguard Worker           /if ?> <?cs
359*feeed43cSAndroid Build Coastguard Worker           call:tag_list(param.comment) ?><?cs
360*feeed43cSAndroid Build Coastguard Worker           call:aux_tag_list(param.commentAux) ?></td>
361*feeed43cSAndroid Build Coastguard Worker       </tr><?cs
362*feeed43cSAndroid Build Coastguard Worker     /each ?>
363*feeed43cSAndroid Build Coastguard Worker     </table><?cs
364*feeed43cSAndroid Build Coastguard Worker   /if ?><?cs
365*feeed43cSAndroid Build Coastguard Worker   #
366*feeed43cSAndroid Build Coastguard Worker   # Print the @return value
367*feeed43cSAndroid Build Coastguard Worker   #
368*feeed43cSAndroid Build Coastguard Worker   ?><?cs
369*feeed43cSAndroid Build Coastguard Worker   if:subcount(obj.returns) || (subcount(method.returnType) && method.returnType.label != 'void') ?>
370*feeed43cSAndroid Build Coastguard Worker     <table class="responsive">
371*feeed43cSAndroid Build Coastguard Worker       <tr><th colspan=2>Returns</th></tr>
372*feeed43cSAndroid Build Coastguard Worker       <tr>
373*feeed43cSAndroid Build Coastguard Worker         <td><code><?cs call:type_link(method.returnType) ?></code></td>
374*feeed43cSAndroid Build Coastguard Worker         <td width="100%"><?cs
375*feeed43cSAndroid Build Coastguard Worker         if:subcount(obj.returns) ?><?cs
376*feeed43cSAndroid Build Coastguard Worker           call:tag_list(obj.returns) ?><?cs
377*feeed43cSAndroid Build Coastguard Worker         else ?><!-- no returns description in source --><?cs
378*feeed43cSAndroid Build Coastguard Worker         /if ?><?cs
379*feeed43cSAndroid Build Coastguard Worker         call:aux_tag_list(obj.returnsAux) ?></td>
380*feeed43cSAndroid Build Coastguard Worker       </tr>
381*feeed43cSAndroid Build Coastguard Worker     </table><?cs
382*feeed43cSAndroid Build Coastguard Worker   /if ?><?cs
383*feeed43cSAndroid Build Coastguard Worker   #
384*feeed43cSAndroid Build Coastguard Worker   # Print the throwables
385*feeed43cSAndroid Build Coastguard Worker   #
386*feeed43cSAndroid Build Coastguard Worker   ?><?cs
387*feeed43cSAndroid Build Coastguard Worker   if:subcount(obj.throws) ?>
388*feeed43cSAndroid Build Coastguard Worker       <table class="responsive">
389*feeed43cSAndroid Build Coastguard Worker       <tr><th colspan=2>Throws</th></tr><?cs
390*feeed43cSAndroid Build Coastguard Worker       each:tag=obj.throws ?>
391*feeed43cSAndroid Build Coastguard Worker         <tr>
392*feeed43cSAndroid Build Coastguard Worker           <td><code><?cs call:type_link(tag.type) ?></code></td>
393*feeed43cSAndroid Build Coastguard Worker           <td width="100%"><?cs call:tag_list(tag.comment) ?></td>
394*feeed43cSAndroid Build Coastguard Worker         </tr><?cs
395*feeed43cSAndroid Build Coastguard Worker       /each ?>
396*feeed43cSAndroid Build Coastguard Worker       </table>
397*feeed43cSAndroid Build Coastguard Worker   <?cs
398*feeed43cSAndroid Build Coastguard Worker   /if ?><?cs
399*feeed43cSAndroid Build Coastguard Worker   call:see_also_tags(obj.seeAlso) ?><?cs
400*feeed43cSAndroid Build Coastguard Worker /def ?><?cs
401*feeed43cSAndroid Build Coastguard Worker 
402*feeed43cSAndroid Build Coastguard Worker # A table of links to classes with descriptions, as in a package file or the nested classes ?><?cs
403*feeed43cSAndroid Build Coastguard Worker def:class_link_table(classes) ?><?cs
404*feeed43cSAndroid Build Coastguard Worker   set:count = #1 ?>
405*feeed43cSAndroid Build Coastguard Worker   <table class="jd-sumtable-expando"><?cs
406*feeed43cSAndroid Build Coastguard Worker       each:cl=classes ?>
407*feeed43cSAndroid Build Coastguard Worker         <tr <?cs
408*feeed43cSAndroid Build Coastguard Worker             if:cl.type.since
409*feeed43cSAndroid Build Coastguard Worker               ?>data-version-added="<?cs var:cl.type.since ?>"<?cs
410*feeed43cSAndroid Build Coastguard Worker             /if ?><?cs
411*feeed43cSAndroid Build Coastguard Worker             if:cl.type.deprecatedsince
412*feeed43cSAndroid Build Coastguard Worker               ?> data-version-deprecated="<?cs var:cl.type.deprecatedsince ?>"<?cs
413*feeed43cSAndroid Build Coastguard Worker             /if ?> >
414*feeed43cSAndroid Build Coastguard Worker               <td><?cs call:type_link(cl.type) ?></td>
415*feeed43cSAndroid Build Coastguard Worker               <td width="100%"><?cs call:short_descr(cl) ?>&nbsp;</td>
416*feeed43cSAndroid Build Coastguard Worker           </tr><?cs set:count = count + #1 ?><?cs
417*feeed43cSAndroid Build Coastguard Worker       /each ?>
418*feeed43cSAndroid Build Coastguard Worker   </table><?cs
419*feeed43cSAndroid Build Coastguard Worker /def ?><?cs
420*feeed43cSAndroid Build Coastguard Worker 
421*feeed43cSAndroid Build Coastguard Worker # A list of links to classes, for use in the side navigation of classes when viewing a package (panel nav) ?><?cs
422*feeed43cSAndroid Build Coastguard Worker def:class_link_list(label, classes) ?><?cs
423*feeed43cSAndroid Build Coastguard Worker   if:subcount(classes) ?>
424*feeed43cSAndroid Build Coastguard Worker     <li><h2 class="hide-from-toc"><?cs var:label ?></h2>
425*feeed43cSAndroid Build Coastguard Worker       <ul><?cs
426*feeed43cSAndroid Build Coastguard Worker       each:cl=classes ?>
427*feeed43cSAndroid Build Coastguard Worker         <li><?cs call:type_link2(cl.type,"true") ?></li><?cs
428*feeed43cSAndroid Build Coastguard Worker       /each ?>
429*feeed43cSAndroid Build Coastguard Worker       </ul>
430*feeed43cSAndroid Build Coastguard Worker     </li><?cs
431*feeed43cSAndroid Build Coastguard Worker   /if ?><?cs
432*feeed43cSAndroid Build Coastguard Worker /def ?><?cs
433*feeed43cSAndroid Build Coastguard Worker 
434*feeed43cSAndroid Build Coastguard Worker # A list of links to classes, for use in the side navigation of classes when viewing a class (panel nav) ?><?cs
435*feeed43cSAndroid Build Coastguard Worker def:list(label, classes) ?><?cs
436*feeed43cSAndroid Build Coastguard Worker   if:subcount(classes) ?>
437*feeed43cSAndroid Build Coastguard Worker     <li><h2 class="hide-from-toc"><?cs var:label ?></h2>
438*feeed43cSAndroid Build Coastguard Worker       <ul><?cs
439*feeed43cSAndroid Build Coastguard Worker       each:cl=classes ?>
440*feeed43cSAndroid Build Coastguard Worker           <li<?cs if:class.name == cl.label?> class="selected"<?cs /if ?>><?cs call:type_link2(cl,"true") ?></li><?cs
441*feeed43cSAndroid Build Coastguard Worker       /each ?>
442*feeed43cSAndroid Build Coastguard Worker       </ul>
443*feeed43cSAndroid Build Coastguard Worker     </li><?cs
444*feeed43cSAndroid Build Coastguard Worker   /if ?><?cs
445*feeed43cSAndroid Build Coastguard Worker /def ?><?cs
446*feeed43cSAndroid Build Coastguard Worker 
447*feeed43cSAndroid Build Coastguard Worker # A list of links to packages, for use in the side navigation of packages (panel nav) ?><?cs
448*feeed43cSAndroid Build Coastguard Worker def:package_link_list(packages) ?><?cs
449*feeed43cSAndroid Build Coastguard Worker   each:pkg=packages ?>
450*feeed43cSAndroid Build Coastguard Worker     <li<?cs if:(class.package.name == pkg.name) || (package.name == pkg.name)?> class="selected"<?cs /if ?>><?cs call:package_link(pkg) ?></li><?cs
451*feeed43cSAndroid Build Coastguard Worker   /each ?><?cs
452*feeed43cSAndroid Build Coastguard Worker /def ?>
453*feeed43cSAndroid Build Coastguard Worker 
454*feeed43cSAndroid Build Coastguard Worker <?cs
455*feeed43cSAndroid Build Coastguard Worker # An expando trigger
456*feeed43cSAndroid Build Coastguard Worker ?><?cs
457*feeed43cSAndroid Build Coastguard Worker def:expando_trigger(id, default) ?>
458*feeed43cSAndroid Build Coastguard Worker   <a href="#" id="<?cs var:id ?>" class="jd-expando-trigger closed"<?cs
459*feeed43cSAndroid Build Coastguard Worker     if:enable_javascript ?>
460*feeed43cSAndroid Build Coastguard Worker      onclick="return toggleInherited(this, null)"<?cs
461*feeed43cSAndroid Build Coastguard Worker     /if ?> >
462*feeed43cSAndroid Build Coastguard Worker     <img id="<?cs var:id ?>-trigger" class="jd-expando-trigger-img"
463*feeed43cSAndroid Build Coastguard Worker          height="34"
464*feeed43cSAndroid Build Coastguard Worker          src="<?cs var:toroot ?>assets/images/styles/disclosure_<?cs
465*feeed43cSAndroid Build Coastguard Worker               if:default == 'closed' ?>down<?cs else ?>up<?cs /if ?>.png" />
466*feeed43cSAndroid Build Coastguard Worker   </a><?cs
467*feeed43cSAndroid Build Coastguard Worker /def ?>
468*feeed43cSAndroid Build Coastguard Worker 
469*feeed43cSAndroid Build Coastguard Worker <?cs
470*feeed43cSAndroid Build Coastguard Worker # An expandable list of classes
471*feeed43cSAndroid Build Coastguard Worker ?><?cs
472*feeed43cSAndroid Build Coastguard Worker def:expandable_class_list(id, classes, default) ?>
473*feeed43cSAndroid Build Coastguard Worker   <div id="<?cs var:id ?>" class="showalways" > <?cs
474*feeed43cSAndroid Build Coastguard Worker     if:subcount(classes) <= #20 ?><?cs
475*feeed43cSAndroid Build Coastguard Worker       each:cl=classes ?><?cs
476*feeed43cSAndroid Build Coastguard Worker         call:type_link(cl.type) ?><?cs
477*feeed43cSAndroid Build Coastguard Worker         if:!last(cl)
478*feeed43cSAndroid Build Coastguard Worker           ?>, <?cs
479*feeed43cSAndroid Build Coastguard Worker         /if ?><?cs
480*feeed43cSAndroid Build Coastguard Worker       /each ?><?cs
481*feeed43cSAndroid Build Coastguard Worker     else ?><?cs
482*feeed43cSAndroid Build Coastguard Worker       set:leftovers = subcount(classes) - #15 ?><?cs
483*feeed43cSAndroid Build Coastguard Worker       loop:i = #0, #14, #1 ?><?cs
484*feeed43cSAndroid Build Coastguard Worker         with:cl=classes[i] ?><?cs
485*feeed43cSAndroid Build Coastguard Worker           call:type_link(cl.type) ?>, <?cs
486*feeed43cSAndroid Build Coastguard Worker         /with ?><?cs
487*feeed43cSAndroid Build Coastguard Worker         if:(#i == #14) ?> and <?cs var:leftovers ?> others.<?cs
488*feeed43cSAndroid Build Coastguard Worker         /if ?><?cs
489*feeed43cSAndroid Build Coastguard Worker       /loop ?><?cs
490*feeed43cSAndroid Build Coastguard Worker     /if ?>
491*feeed43cSAndroid Build Coastguard Worker   </div>
492*feeed43cSAndroid Build Coastguard Worker   <div id="<?cs var:id ?>-summary"<?cs
493*feeed43cSAndroid Build Coastguard Worker     if:default == "summary" ?>
494*feeed43cSAndroid Build Coastguard Worker        class="showalways"<?cs
495*feeed43cSAndroid Build Coastguard Worker     /if ?> >
496*feeed43cSAndroid Build Coastguard Worker     <?cs call:class_link_table(classes) ?>
497*feeed43cSAndroid Build Coastguard Worker   </div><?cs
498*feeed43cSAndroid Build Coastguard Worker /def ?>
499*feeed43cSAndroid Build Coastguard Worker 
500*feeed43cSAndroid Build Coastguard Worker <?cs include:"components.cs" ?>
501