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