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