Home | History | Annotate | Download | only in templates-sdk
      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) ?>&nbsp;
     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) ?>&nbsp;
    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">&nbsp;<?cs
    261         if:(subcount(class.inheritance)-colspan) == i
    262           ?>&nbsp;&nbsp;&#x21b3;<?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
    280 if: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>&nbsp;</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) ?>&nbsp;
    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 
    616 <?cs if:devsite ?>
    617 
    618 <div class="data-reference-resources-wrapper">
    619   <?cs if:subcount(class.package) ?>
    620   <ul data-reference-resources>
    621     <?cs call:list("Annotations", class.package.annotations) ?>
    622     <?cs call:list("Interfaces", class.package.interfaces) ?>
    623     <?cs call:list("Classes", class.package.classes) ?>
    624     <?cs call:list("Enums", class.package.enums) ?>
    625     <?cs call:list("Exceptions", class.package.exceptions) ?>
    626     <?cs call:list("Errors", class.package.errors) ?>
    627   </ul>
    628   <?cs elif:subcount(package) ?>
    629   <ul data-reference-resources>
    630     <?cs call:class_link_list("Annotations", package.annotations) ?>
    631     <?cs call:class_link_list("Interfaces", package.interfaces) ?>
    632     <?cs call:class_link_list("Classes", package.classes) ?>
    633     <?cs call:class_link_list("Enums", package.enums) ?>
    634     <?cs call:class_link_list("Exceptions", package.exceptions) ?>
    635     <?cs call:class_link_list("Errors", package.errors) ?>
    636   </ul>
    637   <?cs /if ?>
    638 </div>
    639 <?cs /if ?>
    640 
    641 <?cs if:!devsite ?>
    642 <?cs include:"footer.cs" ?>
    643 <?cs include:"trailer.cs" ?>
    644 <?cs /if ?>
    645 </body>
    646 </html>
    647