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