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