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