1 <?cs include:"doctype.cs" ?>
2 <?cs include:"macros.cs" ?>
3 <html devsite>
4 <?cs include:"head_tag.cs" ?>
5 <body class="gc-documentation <?cs if:(reference.gms || reference.gcm) ?>google<?cs /if ?>
6   <?cs if:(guide||develop||training||reference||tools||sdk) ?>develop<?cs
7   elif:design ?>design<?cs
8   elif:distribute ?>distribute<?cs
9   /if ?>" itemscope itemtype="http://schema.org/Article">
10   <div id="doc-api-level" class="<?cs var:class.since ?>" style="display:none"></div>
11   <a name="top"></a>
12 <?cs include:"header.cs" ?>
13 
14 <div class="col-12"  id="doc-col">
15 
16 <div id="api-info-block">
17 
18 <?cs # are there inherited members ?>
19 <?cs each:cl=class.inherited ?>
20   <?cs if:subcount(cl.methods) ?>
21    <?cs set:inhmethods = #1 ?>
22   <?cs /if ?>
23   <?cs if:subcount(cl.constants) ?>
24    <?cs set:inhconstants = #1 ?>
25   <?cs /if ?>
26   <?cs if:subcount(cl.fields) ?>
27    <?cs set:inhfields = #1 ?>
28   <?cs /if ?>
29   <?cs if:subcount(cl.attrs) ?>
30    <?cs set:inhattrs = #1 ?>
31   <?cs /if ?>
32 <?cs /each ?>
33 
34 <div class="sum-details-links">
35 <?cs if:inhattrs || inhconstants || inhfields || inhmethods || (!class.subclasses.hidden &&
36      (subcount(class.subclasses.direct) || subcount(class.subclasses.indirect))) ?>
37 Summary:
38 <?cs if:subcount(class.inners) ?>
39   <a href="#nestedclasses">Nested Classes</a>
40   <?cs set:linkcount = #1 ?>
41 <?cs /if ?>
42 <?cs if:subcount(class.attrs) ?>
43   <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#lattrs">XML Attrs</a>
44   <?cs set:linkcount = #1 ?>
45 <?cs /if ?>
46 <?cs if:inhattrs ?>
47   <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#inhattrs">Inherited XML Attrs</a>
48   <?cs set:linkcount = #1 ?>
49 <?cs /if ?>
50 <?cs if:subcount(class.enumConstants) ?>
51   <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#enumconstants">Enums</a>
52   <?cs set:linkcount = #1 ?>
53 <?cs /if ?>
54 <?cs if:subcount(class.constants) ?>
55   <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#constants">Constants</a>
56   <?cs set:linkcount = #1 ?>
57 <?cs /if ?>
58 <?cs if:inhconstants ?>
59   <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#inhconstants">Inherited Constants</a>
60   <?cs set:linkcount = #1 ?>
61 <?cs /if ?>
62 <?cs if:subcount(class.fields) ?>
63   <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#lfields">Fields</a>
64   <?cs set:linkcount = #1 ?>
65 <?cs /if ?>
66 <?cs if:inhfields ?>
67   <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#inhfields">Inherited Fields</a>
68   <?cs set:linkcount = #1 ?>
69 <?cs /if ?>
70 <?cs if:subcount(class.ctors.public) ?>
71   <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#pubctors">Ctors</a>
72   <?cs set:linkcount = #1 ?>
73 <?cs /if ?>
74 <?cs if:subcount(class.ctors.protected) ?>
75   <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#proctors">Protected Ctors</a>
76   <?cs set:linkcount = #1 ?>
77 <?cs /if ?>
78 <?cs if:subcount(class.methods.public) ?>
79   <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#pubmethods">Methods</a>
80   <?cs set:linkcount = #1 ?>
81 <?cs /if ?>
82 <?cs if:subcount(class.methods.protected) ?>
83   <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#promethods">Protected Methods</a>
84   <?cs set:linkcount = #1 ?>
85 <?cs /if ?>
86 <?cs if:inhmethods ?>
87   <?cs if:linkcount ?>&#124; <?cs /if ?><a href="#inhmethods">Inherited Methods</a>
88 <?cs /if ?>
89 &#124; <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
90 <?cs /if ?>
91 </div><!-- end sum-details-links -->
92 <div class="api-level">
93   <?cs call:since_tags(class) ?><?cs
94   if:class.deprecatedsince
95     ?><br>Deprecated since <a href="<?cs var:toroot ?>guide/topics/manifest/uses-sdk-element.html#ApiLevels"
96         >API level <?cs var:class.deprecatedsince ?></a><?cs
97   /if ?>
98   <?cs call:federated_refs(class) ?>
99 </div>
100 </div><!-- end api-info-block -->
101 
102 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
103 <!-- ======== START OF CLASS DATA ======== -->
104 
105 <div id="jd-header">
106     <?cs var:class.scope ?>
107     <?cs var:class.static ?>
108     <?cs var:class.final ?>
109     <?cs var:class.abstract ?>
110     <?cs var:class.kind ?>
111 <h1 itemprop="name"><?cs var:class.name ?></h1>
112 
113 <?cs set:colspan = subcount(class.inheritance) ?>
114 <?cs each:supr = class.inheritance ?>
115   <?cs if:colspan == 2 ?>
116     extends <?cs call:type_link(supr.short_class) ?><br/>
117   <?cs /if ?>
118   <?cs if:last(supr) && subcount(supr.interfaces) ?>
119       implements
120       <?cs each:t=supr.interfaces ?>
121         <?cs call:type_link(t) ?>
122       <?cs /each ?>
123   <?cs /if ?>
124   <?cs set:colspan = colspan-1 ?>
125 <?cs /each ?>
126 
127 </div><!-- end header -->
128 
129 <div id="naMessage"></div>
130 
131 <div id="jd-content" class="api apilevel-<?cs var:class.since ?>">
132 <table class="jd-inheritance-table">
133 <?cs set:colspan = subcount(class.inheritance) ?>
134 <?cs each:supr = class.inheritance ?>
135     <tr>
136         <?cs loop:i = 1, (subcount(class.inheritance)-colspan), 1 ?>
137             <td class="jd-inheritance-space">&nbsp;<?cs if:(subcount(class.inheritance)-colspan) == i ?>&nbsp;&nbsp;&#x21b3;<?cs /if ?></td>
138         <?cs /loop ?>
139         <td colspan="<?cs var:colspan ?>" class="jd-inheritance-class-cell"><?cs
140             if:colspan == 1
141                 ?><?cs call:class_name(class.qualifiedType) ?><?cs
142             else
143                 ?><?cs call:type_link(supr.class) ?><?cs
144             /if ?></td>
145     </tr>
146     <?cs set:colspan = colspan-1 ?>
147 <?cs /each ?>
148 </table>
149 
150 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
151 
152 <?cs if:subcount(class.subclasses.direct) && !class.subclasses.hidden ?>
153 <table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
154 <?cs call:expando_trigger("subclasses-direct", "closed") ?>Known Direct Subclasses
155 <?cs call:expandable_class_list("subclasses-direct", class.subclasses.direct, "list") ?>
156 </td></tr></table>
157 <?cs /if ?>
158 
159 <?cs if:subcount(class.subclasses.indirect) && !class.subclasses.hidden ?>
160 <table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
161 <?cs call:expando_trigger("subclasses-indirect", "closed") ?>Known Indirect Subclasses
162 <?cs call:expandable_class_list("subclasses-indirect", class.subclasses.indirect, "list") ?>
163 </td></tr></table>
164 <?cs /if ?>
165 
166 <div class="jd-descr">
167 <?cs call:deprecated_warning(class) ?>
168 <?cs if:subcount(class.descr) ?>
169 <h2>Class Overview</h2>
170 <p itemprop="articleBody"><?cs call:tag_list(class.descr) ?></p>
171 <?cs /if ?>
172 
173 <?cs call:see_also_tags(class.seeAlso) ?>
174 
175 </div><!-- jd-descr -->
176 
177 
178 <?cs # summary macros ?>
179 
180 <?cs def:write_method_summary(methods, included) ?>
181 <?cs set:count = #1 ?>
182 <?cs each:method = methods ?>
183 	 <?cs # The apilevel-N class MUST BE LAST in the sequence of class names ?>
184     <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:method.since ?>" >
185         <td class="jd-typecol"><nobr>
186             <?cs var:method.abstract ?>
187             <?cs var:method.default ?>
188             <?cs var:method.static ?>
189             <?cs var:method.final ?>
190             <?cs call:type_link(method.generic) ?>
191             <?cs call:type_link(method.returnType) ?></nobr>
192         </td>
193         <td class="jd-linkcol" width="100%"><nobr>
194         <span class="sympad"><?cs call:cond_link(method.name, toroot, method.href, included) ?></span>(<?cs call:parameter_list(method.params) ?>)</nobr>
195         <?cs if:subcount(method.shortDescr) || subcount(method.deprecated) ?>
196         <div class="jd-descrdiv"><?cs call:short_descr(method) ?></div>
197   <?cs /if ?>
198   </td></tr>
199 <?cs set:count = count + #1 ?>
200 <?cs /each ?>
201 <?cs /def ?>
202 
203 <?cs def:write_field_summary(fields, included) ?>
204 <?cs set:count = #1 ?>
205     <?cs each:field=fields ?>
206       <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:field.since ?>" >
207           <td class="jd-typecol"><nobr>
208           <?cs var:field.scope ?>
209           <?cs var:field.static ?>
210           <?cs var:field.final ?>
211           <?cs call:type_link(field.type) ?></nobr></td>
212           <td class="jd-linkcol"><?cs call:cond_link(field.name, toroot, field.href, included) ?></td>
213           <td class="jd-descrcol" width="100%"><?cs call:short_descr(field) ?></td>
214       </tr>
215       <?cs set:count = count + #1 ?>
216     <?cs /each ?>
217 <?cs /def ?>
218 
219 <?cs def:write_constant_summary(fields, included) ?>
220 <?cs set:count = #1 ?>
221     <?cs each:field=fields ?>
222     <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:field.since ?>" >
223         <td class="jd-typecol"><?cs call:type_link(field.type) ?></td>
224         <td class="jd-linkcol"><?cs call:cond_link(field.name, toroot, field.href, included) ?></td>
225         <td class="jd-descrcol" width="100%"><?cs call:short_descr(field) ?></td>
226     </tr>
227     <?cs set:count = count + #1 ?>
228     <?cs /each ?>
229 <?cs /def ?>
230 
231 <?cs def:write_attr_summary(attrs, included) ?>
232 <?cs set:count = #1 ?>
233     <tr>
234         <td><nobr><em>Attribute Name</em></nobr></td>
235         <td><nobr><em>Related Method</em></nobr></td>
236         <td><nobr><em>Description</em></nobr></td>
237     </tr>
238     <?cs each:attr=attrs ?>
239     <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:attr.since ?>" >
240         <td class="jd-linkcol"><?cs if:included ?><a href="<?cs var:toroot ?><?cs var:attr.href ?>"><?cs /if ?><?cs var:attr.name ?><?cs if:included ?></a><?cs /if ?></td>
241         <td class="jd-linkcol"><?cs each:m=attr.methods ?>
242             <?cs call:cond_link(m.name, toroot, m.href, included) ?>
243             <?cs /each ?>
244         </td>
245         <td class="jd-descrcol" width="100%"><?cs call:short_descr(attr) ?>&nbsp;</td>
246     </tr>
247     <?cs set:count = count + #1 ?>
248     <?cs /each ?>
249 <?cs /def ?>
250 
251 <?cs def:write_inners_summary(classes) ?>
252 <?cs set:count = #1 ?>
253   <?cs each:cl=class.inners ?>
254     <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:cl.since ?>" >
255       <td class="jd-typecol"><nobr>
256         <?cs var:cl.scope ?>
257         <?cs var:cl.static ?>
258         <?cs var:cl.final ?>
259         <?cs var:cl.abstract ?>
260         <?cs var:cl.kind ?></nobr></td>
261       <td class="jd-linkcol"><?cs call:type_link(cl.type) ?></td>
262       <td class="jd-descrcol" width="100%"><?cs call:short_descr(cl) ?>&nbsp;</td>
263     </tr>
264     <?cs set:count = count + #1 ?>
265     <?cs /each ?>
266 <?cs /def ?>
267 
268 <?cs # end macros ?>
269 
270 <div class="jd-descr">
271 <?cs # make sure there's a summary view to display ?>
272 <?cs if:subcount(class.inners)
273      || subcount(class.attrs)
274      || inhattrs
275      || subcount(class.enumConstants)
276      || subcount(class.constants)
277      || inhconstants
278      || subcount(class.fields)
279      || inhfields
280      || subcount(class.ctors.public)
281      || subcount(class.ctors.protected)
282      || subcount(class.methods.public)
283      || subcount(class.methods.protected)
284      || inhmethods ?>
285 <h2>Summary</h2>
286 
287 <?cs if:subcount(class.inners) ?>
288 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
289 <!-- ======== NESTED CLASS SUMMARY ======== -->
290 <table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
291 <?cs call:write_inners_summary(class.inners) ?>
292 <?cs /if ?>
293 
294 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
295 <?cs if:subcount(class.attrs) ?>
296 <!-- =========== FIELD SUMMARY =========== -->
297 <table id="lattrs" class="jd-sumtable"><tr><th colspan="12">XML Attributes</th></tr>
298 <?cs call:write_attr_summary(class.attrs, 1) ?>
299 <?cs /if ?>
300 
301 <?cs # if there are inherited attrs, write the table ?>
302 <?cs if:inhattrs ?>
303 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
304 <!-- =========== FIELD SUMMARY =========== -->
305 <table id="inhattrs" class="jd-sumtable"><tr><th>
306   <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
307   <div style="clear:left;">Inherited XML Attributes</div></th></tr>
308 <?cs each:cl=class.inherited ?>
309 <?cs if:subcount(cl.attrs) ?>
310 <tr class="api apilevel-<?cs var:cl.since ?>" >
311 <td colspan="12">
312 <?cs call:expando_trigger("inherited-attrs-"+cl.qualified, "closed") ?>From <?cs var:cl.kind ?>
313 <?cs call:cond_link(cl.qualified, toroot, cl.link, cl.included) ?>
314 <div id="inherited-attrs-<?cs var:cl.qualified ?>">
315   <div id="inherited-attrs-<?cs var:cl.qualified ?>-list"
316         class="jd-inheritedlinks">
317   </div>
318   <div id="inherited-attrs-<?cs var:cl.qualified ?>-summary" style="display: none;">
319     <table class="jd-sumtable-expando">
320     <?cs call:write_attr_summary(cl.attrs, cl.included) ?></table>
321   </div>
322 </div>
323 </td></tr>
324 <?cs /if ?>
325 <?cs /each ?>
326 </table>
327 <?cs /if ?>
328 
329 <?cs if:subcount(class.enumConstants) ?>
330 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
331 <!-- =========== ENUM CONSTANT SUMMARY =========== -->
332 <table id="enumconstants" class="jd-sumtable"><tr><th colspan="12">Enum Values</th></tr>
333 <?cs set:count = #1 ?>
334     <?cs each:field=class.enumConstants ?>
335     <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:field.since ?>" >
336         <td class="jd-descrcol"><?cs call:type_link(field.type) ?>&nbsp;</td>
337         <td class="jd-linkcol"><?cs call:cond_link(field.name, toroot, field.href, cl.included) ?>&nbsp;</td>
338         <td class="jd-descrcol" width="100%"><?cs call:short_descr(field) ?>&nbsp;</td>
339     </tr>
340     <?cs set:count = count + #1 ?>
341     <?cs /each ?>
342 <?cs /if ?>
343 
344 <?cs if:subcount(class.constants) ?>
345 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
346 <!-- =========== ENUM CONSTANT SUMMARY =========== -->
347 <table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
348 <?cs call:write_constant_summary(class.constants, 1) ?>
349 </table>
350 <?cs /if ?>
351 
352 <?cs # if there are inherited constants, write the table ?>
353 <?cs if:inhconstants ?>
354 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
355 <!-- =========== ENUM CONSTANT SUMMARY =========== -->
356 <table id="inhconstants" class="jd-sumtable"><tr><th>
357   <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
358   <div style="clear:left;">Inherited Constants</div></th></tr>
359 <?cs each:cl=class.inherited ?>
360 <?cs if:subcount(cl.constants) ?>
361 <tr class="api apilevel-<?cs var:cl.since ?>" >
362 <td colspan="12">
363 <?cs call:expando_trigger("inherited-constants-"+cl.qualified, "closed") ?>From <?cs var:cl.kind ?>
364 <?cs call:cond_link(cl.qualified, toroot, cl.link, cl.included) ?>
365 <div id="inherited-constants-<?cs var:cl.qualified ?>">
366   <div id="inherited-constants-<?cs var:cl.qualified ?>-list"
367         class="jd-inheritedlinks">
368   </div>
369   <div id="inherited-constants-<?cs var:cl.qualified ?>-summary" style="display: none;">
370     <table class="jd-sumtable-expando">
371     <?cs call:write_constant_summary(cl.constants, cl.included) ?></table>
372   </div>
373 </div>
374 </td></tr>
375 <?cs /if ?>
376 <?cs /each ?>
377 </table>
378 <?cs /if ?>
379 
380 <?cs if:subcount(class.fields) ?>
381 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
382 <!-- =========== FIELD SUMMARY =========== -->
383 <table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
384 <?cs call:write_field_summary(class.fields, 1) ?>
385 </table>
386 <?cs /if ?>
387 
388 <?cs # if there are inherited fields, write the table ?>
389 <?cs if:inhfields ?>
390 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
391 <!-- =========== FIELD SUMMARY =========== -->
392 <table id="inhfields" class="jd-sumtable"><tr><th>
393   <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
394   <div style="clear:left;">Inherited Fields</div></th></tr>
395 <?cs each:cl=class.inherited ?>
396 <?cs if:subcount(cl.fields) ?>
397 <tr class="api apilevel-<?cs var:cl.since ?>" >
398 <td colspan="12">
399 <?cs call:expando_trigger("inherited-fields-"+cl.qualified, "closed") ?>From <?cs var:cl.kind ?>
400 <?cs call:cond_link(cl.qualified, toroot, cl.link, cl.included) ?>
401 <div id="inherited-fields-<?cs var:cl.qualified ?>">
402   <div id="inherited-fields-<?cs var:cl.qualified ?>-list"
403         class="jd-inheritedlinks">
404   </div>
405   <div id="inherited-fields-<?cs var:cl.qualified ?>-summary" style="display: none;">
406     <table class="jd-sumtable-expando">
407     <?cs call:write_field_summary(cl.fields, cl.included) ?></table>
408   </div>
409 </div>
410 </td></tr>
411 <?cs /if ?>
412 <?cs /each ?>
413 </table>
414 <?cs /if ?>
415 
416 <?cs if:subcount(class.ctors.public) ?>
417 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
418 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
419 <table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
420 <?cs call:write_method_summary(class.ctors.public, 1) ?>
421 </table>
422 <?cs /if ?>
423 
424 <?cs if:subcount(class.ctors.protected) ?>
425 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
426 <!-- ======== CONSTRUCTOR SUMMARY ======== -->
427 <table id="proctors" class="jd-sumtable"><tr><th colspan="12">Protected Constructors</th></tr>
428 <?cs call:write_method_summary(class.ctors.protected, 1) ?>
429 </table>
430 <?cs /if ?>
431 
432 <?cs if:subcount(class.methods.public) ?>
433 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
434 <!-- ========== METHOD SUMMARY =========== -->
435 <table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
436 <?cs call:write_method_summary(class.methods.public, 1) ?>
437 </table>
438 <?cs /if ?>
439 
440 <?cs if:subcount(class.methods.protected) ?>
441 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
442 <!-- ========== METHOD SUMMARY =========== -->
443 <table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
444 <?cs call:write_method_summary(class.methods.protected, 1) ?>
445 </table>
446 <?cs /if ?>
447 
448 <?cs # if there are inherited methods, write the table ?>
449 <?cs if:inhmethods ?>
450 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
451 <!-- ========== METHOD SUMMARY =========== -->
452 <table id="inhmethods" class="jd-sumtable"><tr><th>
453   <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
454   <div style="clear:left;">Inherited Methods</div></th></tr>
455 <?cs each:cl=class.inherited ?>
456 <?cs if:subcount(cl.methods) ?>
457 <tr class="api apilevel-<?cs var:cl.since ?>" >
458 <td colspan="12"><?cs call:expando_trigger("inherited-methods-"+cl.qualified, "closed") ?>
459 From <?cs var:cl.kind ?>
460 <?cs if:cl.included ?>
461   <a href="<?cs var:toroot ?><?cs var:cl.link ?>"><?cs var:cl.qualified ?></a>
462 <?cs elif:cl.federated ?>
463   <a href="<?cs var:cl.link ?>"><?cs var:cl.qualified ?></a>
464 <?cs else ?>
465   <?cs var:cl.qualified ?>
466 <?cs /if ?>
467 <div id="inherited-methods-<?cs var:cl.qualified ?>">
468   <div id="inherited-methods-<?cs var:cl.qualified ?>-list"
469         class="jd-inheritedlinks">
470   </div>
471   <div id="inherited-methods-<?cs var:cl.qualified ?>-summary" style="display: none;">
472     <table class="jd-sumtable-expando">
473     <?cs call:write_method_summary(cl.methods, cl.included) ?></table>
474   </div>
475 </div>
476 </td></tr>
477 <?cs /if ?>
478 <?cs /each ?>
479 </table>
480 <?cs /if ?>
481 <?cs /if ?>
482 </div><!-- jd-descr (summary) -->
483 
484 <!-- Details -->
485 
486 <?cs def:write_field_details(fields) ?>
487 <?cs each:field=fields ?>
488 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
489 <?cs # the A tag in the next line must remain where it is, so that Eclipse can parse the docs ?>
490 <A NAME="<?cs var:field.anchor ?>"></A>
491 <?cs # The apilevel-N class MUST BE LAST in the sequence of class names ?>
492 <div class="jd-details api apilevel-<?cs var:field.since ?>">
493     <h4 class="jd-details-title">
494       <span class="normal">
495         <?cs var:field.scope ?>
496         <?cs var:field.static ?>
497         <?cs var:field.final ?>
498         <?cs call:type_link(field.type) ?>
499       </span>
500         <?cs var:field.name ?>
501     </h4>
502       <div class="api-level">
503         <?cs call:since_tags(field) ?>
504         <?cs call:federated_refs(field) ?>
505       </div>
506     <div class="jd-details-descr">
507       <?cs call:description(field) ?>
508     <?cs if:subcount(field.constantValue) ?>
509         <div class="jd-tagdata">
510         <span class="jd-tagtitle">Constant Value: </span>
511         <span>
512             <?cs if:field.constantValue.isString ?>
513                 <?cs var:field.constantValue.str ?>
514             <?cs else ?>
515                 <?cs var:field.constantValue.dec ?>
516                 (<?cs var:field.constantValue.hex ?>)
517             <?cs /if ?>
518         </span>
519         </div>
520     <?cs /if ?>
521     </div>
522 </div>
523 <?cs /each ?>
524 <?cs /def ?>
525 
526 <?cs def:write_method_details(methods) ?>
527 <?cs each:method=methods ?>
528 <?cs # the A tag in the next line must remain where it is, so that Eclipse can parse the docs ?>
529 <A NAME="<?cs var:method.anchor ?>"></A>
530 <?cs # The apilevel-N class MUST BE LAST in the sequence of class names ?>
531 <div class="jd-details api apilevel-<?cs var:method.since ?>">
532     <h4 class="jd-details-title">
533       <span class="normal">
534         <?cs var:method.scope ?>
535         <?cs var:method.abstract ?>
536         <?cs var:method.default ?>
537         <?cs var:method.static ?>
538         <?cs var:method.final ?>
539         <?cs call:type_link(method.returnType) ?>
540       </span>
541       <span class="sympad"><?cs var:method.name ?></span>
542       <span class="normal">(<?cs call:parameter_list(method.params) ?>)</span>
543     </h4>
544       <div class="api-level">
545         <div><?cs call:since_tags(method) ?></div>
546         <?cs call:federated_refs(method) ?>
547       </div>
548     <div class="jd-details-descr">
549       <?cs call:description(method) ?>
550     </div>
551 </div>
552 <?cs /each ?>
553 <?cs /def ?>
554 
555 <?cs def:write_attr_details(attrs) ?>
556 <?cs each:attr=attrs ?>
557 <?cs # the A tag in the next line must remain where it is, so that Eclipse can parse the docs ?>
558 <A NAME="<?cs var:attr.anchor ?>"></A>
559 <div class="jd-details">
560     <h4 class="jd-details-title"><?cs var:attr.name ?>
561     </h4>
562     <div class="jd-details-descr">
563         <?cs call:description(attr) ?>
564 
565         <div class="jd-tagdata">
566             <h5 class="jd-tagtitle">Related Methods</h5>
567             <ul class="nolist">
568             <?cs each:m=attr.methods ?>
569                 <li><a href="<?cs var:toroot ?><?cs var:m.href ?>"><?cs var:m.name ?></a></li>
570             <?cs /each ?>
571             </ul>
572         </div>
573     </div>
574 </div>
575 <?cs /each ?>
576 <?cs /def ?>
577 
578 
579 <!-- XML Attributes -->
580 <?cs if:subcount(class.attrs) ?>
581 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
582 <!-- ========= FIELD DETAIL ======== -->
583 <h2>XML Attributes</h2>
584 <?cs call:write_attr_details(class.attrs) ?>
585 <?cs /if ?>
586 
587 <!-- Enum Values -->
588 <?cs if:subcount(class.enumConstants) ?>
589 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
590 <!-- ========= ENUM CONSTANTS DETAIL ======== -->
591 <h2>Enum Values</h2>
592 <?cs call:write_field_details(class.enumConstants) ?>
593 <?cs /if ?>
594 
595 <!-- Constants -->
596 <?cs if:subcount(class.constants) ?>
597 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
598 <!-- ========= ENUM CONSTANTS DETAIL ======== -->
599 <h2>Constants</h2>
600 <?cs call:write_field_details(class.constants) ?>
601 <?cs /if ?>
602 
603 <!-- Fields -->
604 <?cs if:subcount(class.fields) ?>
605 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
606 <!-- ========= FIELD DETAIL ======== -->
607 <h2>Fields</h2>
608 <?cs call:write_field_details(class.fields) ?>
609 <?cs /if ?>
610 
611 <!-- Public ctors -->
612 <?cs if:subcount(class.ctors.public) ?>
613 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
614 <!-- ========= CONSTRUCTOR DETAIL ======== -->
615 <h2>Public Constructors</h2>
616 <?cs call:write_method_details(class.ctors.public) ?>
617 <?cs /if ?>
618 
619 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
620 <!-- ========= CONSTRUCTOR DETAIL ======== -->
621 <!-- Protected ctors -->
622 <?cs if:subcount(class.ctors.protected) ?>
623 <h2>Protected Constructors</h2>
624 <?cs call:write_method_details(class.ctors.protected) ?>
625 <?cs /if ?>
626 
627 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
628 <!-- ========= METHOD DETAIL ======== -->
629 <!-- Public methdos -->
630 <?cs if:subcount(class.methods.public) ?>
631 <h2>Public Methods</h2>
632 <?cs call:write_method_details(class.methods.public) ?>
633 <?cs /if ?>
634 
635 <?cs # this next line must be exactly like this to be parsed by eclipse ?>
636 <!-- ========= METHOD DETAIL ======== -->
637 <?cs if:subcount(class.methods.protected) ?>
638 <h2>Protected Methods</h2>
639 <?cs call:write_method_details(class.methods.protected) ?>
640 <?cs /if ?>
641 
642 <?cs # the next two lines must be exactly like this to be parsed by eclipse ?>
643 <!-- ========= END OF CLASS DATA ========= -->
644 <A NAME="navbar_top"></A>
645 
646 <?cs include:"footer.cs" ?>
647 </div> <!-- jd-content -->
648 
649 </div><!-- end doc-content -->
650 
651 <?cs include:"trailer.cs" ?>
652 
653 </body>
654 </html>
655