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