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