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) ?> 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) ?> 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"> <?cs 260 if:(subcount(class.inheritance)-colspan) == i 261 ?> ↳<?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> </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) ?> 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