class.cs revision 3d039178d7c9bb0a644b733f9efbefa6ad566fa6
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))) ?>
37Summary:
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.final ?>
188            <?cs var:method.static ?>
189            <?cs call:type_link(method.generic) ?>
190            <?cs call:type_link(method.returnType) ?></nobr>
191        </td>
192        <td class="jd-linkcol" width="100%"><nobr>
193        <span class="sympad"><?cs call:cond_link(method.name, toroot, method.href, included) ?></span>(<?cs call:parameter_list(method.params) ?>)</nobr>
194        <?cs if:subcount(method.shortDescr) || subcount(method.deprecated) ?>
195        <div class="jd-descrdiv"><?cs call:short_descr(method) ?></div>
196  <?cs /if ?>
197  </td></tr>
198<?cs set:count = count + #1 ?>
199<?cs /each ?>
200<?cs /def ?>
201
202<?cs def:write_field_summary(fields, included) ?>
203<?cs set:count = #1 ?>
204    <?cs each:field=fields ?>
205      <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:field.since ?>" >
206          <td class="jd-typecol"><nobr>
207          <?cs var:field.scope ?>
208          <?cs var:field.static ?>
209          <?cs var:field.final ?>
210          <?cs call:type_link(field.type) ?></nobr></td>
211          <td class="jd-linkcol"><?cs call:cond_link(field.name, toroot, field.href, included) ?></td>
212          <td class="jd-descrcol" width="100%"><?cs call:short_descr(field) ?></td>
213      </tr>
214      <?cs set:count = count + #1 ?>
215    <?cs /each ?>
216<?cs /def ?>
217
218<?cs def:write_constant_summary(fields, included) ?>
219<?cs set:count = #1 ?>
220    <?cs each:field=fields ?>
221    <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:field.since ?>" >
222        <td class="jd-typecol"><?cs call:type_link(field.type) ?></td>
223        <td class="jd-linkcol"><?cs call:cond_link(field.name, toroot, field.href, included) ?></td>
224        <td class="jd-descrcol" width="100%"><?cs call:short_descr(field) ?></td>
225    </tr>
226    <?cs set:count = count + #1 ?>
227    <?cs /each ?>
228<?cs /def ?>
229
230<?cs def:write_attr_summary(attrs, included) ?>
231<?cs set:count = #1 ?>
232    <tr>
233        <td><nobr><em>Attribute Name</em></nobr></td>
234        <td><nobr><em>Related Method</em></nobr></td>
235        <td><nobr><em>Description</em></nobr></td>
236    </tr>
237    <?cs each:attr=attrs ?>
238    <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:attr.since ?>" >
239        <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>
240        <td class="jd-linkcol"><?cs each:m=attr.methods ?>
241            <?cs call:cond_link(m.name, toroot, m.href, included) ?>
242            <?cs /each ?>
243        </td>
244        <td class="jd-descrcol" width="100%"><?cs call:short_descr(attr) ?>&nbsp;</td>
245    </tr>
246    <?cs set:count = count + #1 ?>
247    <?cs /each ?>
248<?cs /def ?>
249
250<?cs def:write_inners_summary(classes) ?>
251<?cs set:count = #1 ?>
252  <?cs each:cl=class.inners ?>
253    <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:cl.since ?>" >
254      <td class="jd-typecol"><nobr>
255        <?cs var:cl.scope ?>
256        <?cs var:cl.static ?>
257        <?cs var:cl.final ?>
258        <?cs var:cl.abstract ?>
259        <?cs var:cl.kind ?></nobr></td>
260      <td class="jd-linkcol"><?cs call:type_link(cl.type) ?></td>
261      <td class="jd-descrcol" width="100%"><?cs call:short_descr(cl) ?>&nbsp;</td>
262    </tr>
263    <?cs set:count = count + #1 ?>
264    <?cs /each ?>
265<?cs /def ?>
266
267<?cs # end macros ?>
268
269<div class="jd-descr">
270<?cs # make sure there's a summary view to display ?>
271<?cs if:subcount(class.inners)
272     || subcount(class.attrs)
273     || inhattrs
274     || subcount(class.enumConstants)
275     || subcount(class.constants)
276     || inhconstants
277     || subcount(class.fields)
278     || inhfields
279     || subcount(class.ctors.public)
280     || subcount(class.ctors.protected)
281     || subcount(class.methods.public)
282     || subcount(class.methods.protected)
283     || inhmethods ?>
284<h2>Summary</h2>
285
286<?cs if:subcount(class.inners) ?>
287<?cs # this next line must be exactly like this to be parsed by eclipse ?>
288<!-- ======== NESTED CLASS SUMMARY ======== -->
289<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
290<?cs call:write_inners_summary(class.inners) ?>
291<?cs /if ?>
292
293<?cs # this next line must be exactly like this to be parsed by eclipse ?>
294<?cs if:subcount(class.attrs) ?>
295<!-- =========== FIELD SUMMARY =========== -->
296<table id="lattrs" class="jd-sumtable"><tr><th colspan="12">XML Attributes</th></tr>
297<?cs call:write_attr_summary(class.attrs, 1) ?>
298<?cs /if ?>
299
300<?cs # if there are inherited attrs, write the table ?>
301<?cs if:inhattrs ?>
302<?cs # this next line must be exactly like this to be parsed by eclipse ?>
303<!-- =========== FIELD SUMMARY =========== -->
304<table id="inhattrs" class="jd-sumtable"><tr><th>
305  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
306  <div style="clear:left;">Inherited XML Attributes</div></th></tr>
307<?cs each:cl=class.inherited ?>
308<?cs if:subcount(cl.attrs) ?>
309<tr class="api apilevel-<?cs var:cl.since ?>" >
310<td colspan="12">
311<?cs call:expando_trigger("inherited-attrs-"+cl.qualified, "closed") ?>From <?cs var:cl.kind ?>
312<?cs call:cond_link(cl.qualified, toroot, cl.link, cl.included) ?>
313<div id="inherited-attrs-<?cs var:cl.qualified ?>">
314  <div id="inherited-attrs-<?cs var:cl.qualified ?>-list"
315        class="jd-inheritedlinks">
316  </div>
317  <div id="inherited-attrs-<?cs var:cl.qualified ?>-summary" style="display: none;">
318    <table class="jd-sumtable-expando">
319    <?cs call:write_attr_summary(cl.attrs, cl.included) ?></table>
320  </div>
321</div>
322</td></tr>
323<?cs /if ?>
324<?cs /each ?>
325</table>
326<?cs /if ?>
327
328<?cs if:subcount(class.enumConstants) ?>
329<?cs # this next line must be exactly like this to be parsed by eclipse ?>
330<!-- =========== ENUM CONSTANT SUMMARY =========== -->
331<table id="enumconstants" class="jd-sumtable"><tr><th colspan="12">Enum Values</th></tr>
332<?cs set:count = #1 ?>
333    <?cs each:field=class.enumConstants ?>
334    <tr class="<?cs if:count % #2 ?>alt-color<?cs /if ?> api apilevel-<?cs var:field.since ?>" >
335        <td class="jd-descrcol"><?cs call:type_link(field.type) ?>&nbsp;</td>
336        <td class="jd-linkcol"><?cs call:cond_link(field.name, toroot, field.href, cl.included) ?>&nbsp;</td>
337        <td class="jd-descrcol" width="100%"><?cs call:short_descr(field) ?>&nbsp;</td>
338    </tr>
339    <?cs set:count = count + #1 ?>
340    <?cs /each ?>
341<?cs /if ?>
342
343<?cs if:subcount(class.constants) ?>
344<?cs # this next line must be exactly like this to be parsed by eclipse ?>
345<!-- =========== ENUM CONSTANT SUMMARY =========== -->
346<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
347<?cs call:write_constant_summary(class.constants, 1) ?>
348</table>
349<?cs /if ?>
350
351<?cs # if there are inherited constants, write the table ?>
352<?cs if:inhconstants ?>
353<?cs # this next line must be exactly like this to be parsed by eclipse ?>
354<!-- =========== ENUM CONSTANT SUMMARY =========== -->
355<table id="inhconstants" class="jd-sumtable"><tr><th>
356  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
357  <div style="clear:left;">Inherited Constants</div></th></tr>
358<?cs each:cl=class.inherited ?>
359<?cs if:subcount(cl.constants) ?>
360<tr class="api apilevel-<?cs var:cl.since ?>" >
361<td colspan="12">
362<?cs call:expando_trigger("inherited-constants-"+cl.qualified, "closed") ?>From <?cs var:cl.kind ?>
363<?cs call:cond_link(cl.qualified, toroot, cl.link, cl.included) ?>
364<div id="inherited-constants-<?cs var:cl.qualified ?>">
365  <div id="inherited-constants-<?cs var:cl.qualified ?>-list"
366        class="jd-inheritedlinks">
367  </div>
368  <div id="inherited-constants-<?cs var:cl.qualified ?>-summary" style="display: none;">
369    <table class="jd-sumtable-expando">
370    <?cs call:write_constant_summary(cl.constants, cl.included) ?></table>
371  </div>
372</div>
373</td></tr>
374<?cs /if ?>
375<?cs /each ?>
376</table>
377<?cs /if ?>
378
379<?cs if:subcount(class.fields) ?>
380<?cs # this next line must be exactly like this to be parsed by eclipse ?>
381<!-- =========== FIELD SUMMARY =========== -->
382<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
383<?cs call:write_field_summary(class.fields, 1) ?>
384</table>
385<?cs /if ?>
386
387<?cs # if there are inherited fields, write the table ?>
388<?cs if:inhfields ?>
389<?cs # this next line must be exactly like this to be parsed by eclipse ?>
390<!-- =========== FIELD SUMMARY =========== -->
391<table id="inhfields" class="jd-sumtable"><tr><th>
392  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
393  <div style="clear:left;">Inherited Fields</div></th></tr>
394<?cs each:cl=class.inherited ?>
395<?cs if:subcount(cl.fields) ?>
396<tr class="api apilevel-<?cs var:cl.since ?>" >
397<td colspan="12">
398<?cs call:expando_trigger("inherited-fields-"+cl.qualified, "closed") ?>From <?cs var:cl.kind ?>
399<?cs call:cond_link(cl.qualified, toroot, cl.link, cl.included) ?>
400<div id="inherited-fields-<?cs var:cl.qualified ?>">
401  <div id="inherited-fields-<?cs var:cl.qualified ?>-list"
402        class="jd-inheritedlinks">
403  </div>
404  <div id="inherited-fields-<?cs var:cl.qualified ?>-summary" style="display: none;">
405    <table class="jd-sumtable-expando">
406    <?cs call:write_field_summary(cl.fields, cl.included) ?></table>
407  </div>
408</div>
409</td></tr>
410<?cs /if ?>
411<?cs /each ?>
412</table>
413<?cs /if ?>
414
415<?cs if:subcount(class.ctors.public) ?>
416<?cs # this next line must be exactly like this to be parsed by eclipse ?>
417<!-- ======== CONSTRUCTOR SUMMARY ======== -->
418<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
419<?cs call:write_method_summary(class.ctors.public, 1) ?>
420</table>
421<?cs /if ?>
422
423<?cs if:subcount(class.ctors.protected) ?>
424<?cs # this next line must be exactly like this to be parsed by eclipse ?>
425<!-- ======== CONSTRUCTOR SUMMARY ======== -->
426<table id="proctors" class="jd-sumtable"><tr><th colspan="12">Protected Constructors</th></tr>
427<?cs call:write_method_summary(class.ctors.protected, 1) ?>
428</table>
429<?cs /if ?>
430
431<?cs if:subcount(class.methods.public) ?>
432<?cs # this next line must be exactly like this to be parsed by eclipse ?>
433<!-- ========== METHOD SUMMARY =========== -->
434<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
435<?cs call:write_method_summary(class.methods.public, 1) ?>
436</table>
437<?cs /if ?>
438
439<?cs if:subcount(class.methods.protected) ?>
440<?cs # this next line must be exactly like this to be parsed by eclipse ?>
441<!-- ========== METHOD SUMMARY =========== -->
442<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
443<?cs call:write_method_summary(class.methods.protected, 1) ?>
444</table>
445<?cs /if ?>
446
447<?cs # if there are inherited methods, write the table ?>
448<?cs if:inhmethods ?>
449<?cs # this next line must be exactly like this to be parsed by eclipse ?>
450<!-- ========== METHOD SUMMARY =========== -->
451<table id="inhmethods" class="jd-sumtable"><tr><th>
452  <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
453  <div style="clear:left;">Inherited Methods</div></th></tr>
454<?cs each:cl=class.inherited ?>
455<?cs if:subcount(cl.methods) ?>
456<tr class="api apilevel-<?cs var:cl.since ?>" >
457<td colspan="12"><?cs call:expando_trigger("inherited-methods-"+cl.qualified, "closed") ?>
458From <?cs var:cl.kind ?>
459<?cs if:cl.included ?>
460  <a href="<?cs var:toroot ?><?cs var:cl.link ?>"><?cs var:cl.qualified ?></a>
461<?cs elif:cl.federated ?>
462  <a href="<?cs var:cl.link ?>"><?cs var:cl.qualified ?></a>
463<?cs else ?>
464  <?cs var:cl.qualified ?>
465<?cs /if ?>
466<div id="inherited-methods-<?cs var:cl.qualified ?>">
467  <div id="inherited-methods-<?cs var:cl.qualified ?>-list"
468        class="jd-inheritedlinks">
469  </div>
470  <div id="inherited-methods-<?cs var:cl.qualified ?>-summary" style="display: none;">
471    <table class="jd-sumtable-expando">
472    <?cs call:write_method_summary(cl.methods, cl.included) ?></table>
473  </div>
474</div>
475</td></tr>
476<?cs /if ?>
477<?cs /each ?>
478</table>
479<?cs /if ?>
480<?cs /if ?>
481</div><!-- jd-descr (summary) -->
482
483<!-- Details -->
484
485<?cs def:write_field_details(fields) ?>
486<?cs each:field=fields ?>
487<?cs # this next line must be exactly like this to be parsed by eclipse ?>
488<?cs # the A tag in the next line must remain where it is, so that Eclipse can parse the docs ?>
489<A NAME="<?cs var:field.anchor ?>"></A>
490<?cs # The apilevel-N class MUST BE LAST in the sequence of class names ?>
491<div class="jd-details api apilevel-<?cs var:field.since ?>">
492    <h4 class="jd-details-title">
493      <span class="normal">
494        <?cs var:field.scope ?>
495        <?cs var:field.static ?>
496        <?cs var:field.final ?>
497        <?cs call:type_link(field.type) ?>
498      </span>
499        <?cs var:field.name ?>
500    </h4>
501      <div class="api-level">
502        <?cs call:since_tags(field) ?>
503        <?cs call:federated_refs(field) ?>
504      </div>
505    <div class="jd-details-descr">
506      <?cs call:description(field) ?>
507    <?cs if:subcount(field.constantValue) ?>
508        <div class="jd-tagdata">
509        <span class="jd-tagtitle">Constant Value: </span>
510        <span>
511            <?cs if:field.constantValue.isString ?>
512                <?cs var:field.constantValue.str ?>
513            <?cs else ?>
514                <?cs var:field.constantValue.dec ?>
515                (<?cs var:field.constantValue.hex ?>)
516            <?cs /if ?>
517        </span>
518        </div>
519    <?cs /if ?>
520    </div>
521</div>
522<?cs /each ?>
523<?cs /def ?>
524
525<?cs def:write_method_details(methods) ?>
526<?cs each:method=methods ?>
527<?cs # the A tag in the next line must remain where it is, so that Eclipse can parse the docs ?>
528<A NAME="<?cs var:method.anchor ?>"></A>
529<?cs # The apilevel-N class MUST BE LAST in the sequence of class names ?>
530<div class="jd-details api apilevel-<?cs var:method.since ?>">
531    <h4 class="jd-details-title">
532      <span class="normal">
533        <?cs var:method.scope ?>
534        <?cs var:method.static ?>
535        <?cs var:method.final ?>
536        <?cs var:method.abstract ?>
537        <?cs call:type_link(method.returnType) ?>
538      </span>
539      <span class="sympad"><?cs var:method.name ?></span>
540      <span class="normal">(<?cs call:parameter_list(method.params) ?>)</span>
541    </h4>
542      <div class="api-level">
543        <div><?cs call:since_tags(method) ?></div>
544        <?cs call:federated_refs(method) ?>
545      </div>
546    <div class="jd-details-descr">
547      <?cs call:description(method) ?>
548    </div>
549</div>
550<?cs /each ?>
551<?cs /def ?>
552
553<?cs def:write_attr_details(attrs) ?>
554<?cs each:attr=attrs ?>
555<?cs # the A tag in the next line must remain where it is, so that Eclipse can parse the docs ?>
556<A NAME="<?cs var:attr.anchor ?>"></A>
557<div class="jd-details">
558    <h4 class="jd-details-title"><?cs var:attr.name ?>
559    </h4>
560    <div class="jd-details-descr">
561        <?cs call:description(attr) ?>
562
563        <div class="jd-tagdata">
564            <h5 class="jd-tagtitle">Related Methods</h5>
565            <ul class="nolist">
566            <?cs each:m=attr.methods ?>
567                <li><a href="<?cs var:toroot ?><?cs var:m.href ?>"><?cs var:m.name ?></a></li>
568            <?cs /each ?>
569            </ul>
570        </div>
571    </div>
572</div>
573<?cs /each ?>
574<?cs /def ?>
575
576
577<!-- XML Attributes -->
578<?cs if:subcount(class.attrs) ?>
579<?cs # this next line must be exactly like this to be parsed by eclipse ?>
580<!-- ========= FIELD DETAIL ======== -->
581<h2>XML Attributes</h2>
582<?cs call:write_attr_details(class.attrs) ?>
583<?cs /if ?>
584
585<!-- Enum Values -->
586<?cs if:subcount(class.enumConstants) ?>
587<?cs # this next line must be exactly like this to be parsed by eclipse ?>
588<!-- ========= ENUM CONSTANTS DETAIL ======== -->
589<h2>Enum Values</h2>
590<?cs call:write_field_details(class.enumConstants) ?>
591<?cs /if ?>
592
593<!-- Constants -->
594<?cs if:subcount(class.constants) ?>
595<?cs # this next line must be exactly like this to be parsed by eclipse ?>
596<!-- ========= ENUM CONSTANTS DETAIL ======== -->
597<h2>Constants</h2>
598<?cs call:write_field_details(class.constants) ?>
599<?cs /if ?>
600
601<!-- Fields -->
602<?cs if:subcount(class.fields) ?>
603<?cs # this next line must be exactly like this to be parsed by eclipse ?>
604<!-- ========= FIELD DETAIL ======== -->
605<h2>Fields</h2>
606<?cs call:write_field_details(class.fields) ?>
607<?cs /if ?>
608
609<!-- Public ctors -->
610<?cs if:subcount(class.ctors.public) ?>
611<?cs # this next line must be exactly like this to be parsed by eclipse ?>
612<!-- ========= CONSTRUCTOR DETAIL ======== -->
613<h2>Public Constructors</h2>
614<?cs call:write_method_details(class.ctors.public) ?>
615<?cs /if ?>
616
617<?cs # this next line must be exactly like this to be parsed by eclipse ?>
618<!-- ========= CONSTRUCTOR DETAIL ======== -->
619<!-- Protected ctors -->
620<?cs if:subcount(class.ctors.protected) ?>
621<h2>Protected Constructors</h2>
622<?cs call:write_method_details(class.ctors.protected) ?>
623<?cs /if ?>
624
625<?cs # this next line must be exactly like this to be parsed by eclipse ?>
626<!-- ========= METHOD DETAIL ======== -->
627<!-- Public methdos -->
628<?cs if:subcount(class.methods.public) ?>
629<h2>Public Methods</h2>
630<?cs call:write_method_details(class.methods.public) ?>
631<?cs /if ?>
632
633<?cs # this next line must be exactly like this to be parsed by eclipse ?>
634<!-- ========= METHOD DETAIL ======== -->
635<?cs if:subcount(class.methods.protected) ?>
636<h2>Protected Methods</h2>
637<?cs call:write_method_details(class.methods.protected) ?>
638<?cs /if ?>
639
640<?cs # the next two lines must be exactly like this to be parsed by eclipse ?>
641<!-- ========= END OF CLASS DATA ========= -->
642<A NAME="navbar_top"></A>
643
644<?cs include:"footer.cs" ?>
645</div> <!-- jd-content -->
646
647</div><!-- end doc-content -->
648
649<?cs include:"trailer.cs" ?>
650
651</body>
652</html>
653