<?cs # THIS CREATES A CLASS OR INTERFACE PAGE FROM .java FILES ?>
<?cs include:"macros.cs" ?>
<?cs include:"macros_override.cs" ?>
<?cs
####################
# MACRO FUNCTION USED ONLY IN THIS TEMPLATE TO GENERATE API REFERENCE
# FIRST, THE FUNCTIONS FOR THE SUMMARY AT THE TOP OF THE PAGE
####################
?>

<?cs
# Prints the table cells for the summary of methods.
?><?cs def:write_method_summary(methods, included) ?>
<?cs set:count = #1 ?>
<?cs each:method = methods ?>
  <?cs # The apilevel-N class MUST BE LAST in the sequence of class names ?>
  <tr class="api apilevel-<?cs var:method.since ?>"<?cs
      if:method.since ?>
      data-version-added="<?cs var:method.since ?>"<?cs
      /if ?><?cs
      if:method.deprecatedsince
        ?> data-version-deprecated="<?cs var:method.deprecatedsince ?>"<?cs
      /if ?> >
  <?cs # leave out this cell if there is no return type = if constructors ?>
  <?cs if:subcount(method.returnType) ?>
    <td><code>
        <?cs var:method.abstract ?>
        <?cs var:method.default ?>
        <?cs var:method.static ?>
        <?cs var:method.final ?>
        <?cs call:type_link(method.generic) ?>
        <?cs call:type_link(method.returnType) ?></code>
    </td>
  <?cs /if ?>
    <td width="100%">
      <code>
      <?cs call:cond_link(method.name, toroot, method.href, included) ?>(<?cs call:parameter_list(method.params, 0) ?>)
      </code>
      <?cs if:subcount(method.shortDescr) || subcount(method.deprecated) ?>
        <p><?cs call:short_descr(method) ?>
        <?cs call:show_annotations_list(method) ?></p>
      <?cs /if ?>
    </td>
  </tr>
  <?cs set:count = count + #1 ?>
<?cs /each ?>
<?cs /def ?>

<?cs
# Print the table cells for the summary of fields.
?><?cs def:write_field_summary(fields, included) ?>
<?cs set:count = #1 ?>
<?cs each:field=fields ?>
  <tr class="api apilevel-<?cs var:field.since ?>"<?cs
      if:field.since ?>
      data-version-added="<?cs var:field.since ?>"<?cs
      /if ?><?cs
      if:field.deprecatedsince
        ?> data-version-deprecated="<?cs var:field.deprecatedsince ?>"<?cs
      /if ?> >
    <td><code>
    <?cs var:field.scope ?>
    <?cs var:field.static ?>
    <?cs var:field.final ?>
    <?cs call:type_link(field.type) ?></code></td>
    <td width="100%">
      <code><?cs call:cond_link(field.name, toroot, field.href, included) ?></code>
      <p><?cs call:short_descr(field) ?>
      <?cs call:show_annotations_list(field) ?></p>
    </td>
  </tr>
  <?cs set:count = count + #1 ?>
<?cs /each ?>
<?cs /def ?>

<?cs
# Print the table cells for the summary of constants
?><?cs def:write_constant_summary(fields, included) ?>
<?cs set:count = #1 ?>
    <?cs each:field=fields ?>
    <tr class="api apilevel-<?cs var:field.since ?>"<?cs
        if:field.since ?>
        data-version-added="<?cs var:field.since ?>"<?cs
        /if ?><?cs
        if:field.deprecatedsince
          ?> data-version-deprecated="<?cs var:field.deprecatedsince ?>"<?cs
        /if ?> >
        <td><code><?cs call:type_link(field.type) ?></code></td>
        <td width="100%">
          <code><?cs call:cond_link(field.name, toroot, field.href, included) ?></code>
          <p><?cs call:short_descr(field) ?>
          <?cs call:show_annotations_list(field) ?></p>
        </td>
    </tr>
    <?cs set:count = count + #1 ?>
    <?cs /each ?>
<?cs /def ?>

<?cs
# Print the table cells for the summary of attributes
?><?cs def:write_attr_summary(attrs, included) ?>
<?cs set:count = #1 ?>
    <?cs each:attr=attrs ?>
    <tr class="api apilevel-<?cs var:attr.since ?>"<?cs
        if:attr.since ?>
        data-version-added="<?cs var:attr.since ?>"<?cs
        /if ?><?cs
        if:attr.deprecatedsince
          ?> data-version-deprecated="<?cs var:attr.deprecatedsince ?>"<?cs
        /if ?> >
        <td><?cs if:included ?><a href="<?cs var:toroot ?><?cs var:attr.href ?>"><?cs /if
          ?><code><?cs var:attr.name ?></code><?cs if:included ?></a><?cs /if ?></td>
        <td width="100%">
          <?cs call:short_descr(attr) ?>&nbsp;
          <?cs call:show_annotations_list(attr) ?>
        </td>
    </tr>
    <?cs set:count = count + #1 ?>
    <?cs /each ?>
<?cs /def ?>

<?cs
# Print the table cells for the inner classes
?><?cs def:write_inners_summary(classes) ?>
<?cs set:count = #1 ?>
  <?cs each:cl=class.inners ?>
    <tr class="api apilevel-<?cs var:cl.since ?>"<?cs
        if:cl.since ?>
        data-version-added="<?cs var:cl.since ?>"<?cs
        /if ?><?cs
        if:cl.deprecatedsince
          ?> data-version-deprecated="<?cs var:cl.deprecatedsince ?>"<?cs
        /if ?> >
      <td class="jd-typecol"><code>
        <?cs var:cl.scope ?>
        <?cs var:cl.static ?>
        <?cs var:cl.final ?>
        <?cs var:cl.abstract ?>
        <?cs var:cl.kind ?></code></td>
      <td class="jd-descrcol" width="100%">
        <code><?cs call:type_link(cl.type) ?></code>
        <p><?cs call:short_descr(cl) ?>&nbsp;
        <?cs call:show_annotations_list(cl) ?></p>
      </td>
    </tr>
    <?cs set:count = count + #1 ?>
    <?cs /each ?>
<?cs /def ?>
<?cs
###################
# END OF FUNCTIONS FOR API SUMMARY
# START OF FUNCTIONS FOR THE API DETAILS
###################
?>
<?cs
# Print the table cells for the summary of constants
?>
<?cs def:write_field_details(fields) ?>
<?cs each:field=fields ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<?cs # the A tag in the next line must remain where it is, so that Eclipse can parse the docs ?>
<A NAME="<?cs var:field.anchor ?>"></A>
<?cs # The apilevel-N class MUST BE LAST in the sequence of class names ?>
<div class="api apilevel-<?cs var:field.since ?>"<?cs
     if:field.since ?>
     data-version-added="<?cs var:field.since ?>"<?cs
     /if ?><?cs
     if:field.deprecatedsince
       ?> data-version-deprecated="<?cs var:field.deprecatedsince ?>"<?cs
     /if ?> >
    <h3 class="api-name"><?cs var:field.name ?></h3>
    <div class="api-level">
      <?cs call:since_tags(field) ?>
      <?cs call:federated_refs(field) ?>
    </div>
<pre class="api-signature no-pretty-print">
<?cs if:string.length(field.scope) ?><?cs var:field.scope
?> <?cs /if ?><?cs if:string.length(field.static) ?><?cs var:field.static
?> <?cs /if ?><?cs if:string.length(field.final) ?><?cs var:field.final
?> <?cs /if ?><?cs if:subcount(field.type) ?><?cs call:type_link(field.type)
?> <?cs /if ?><?cs var:field.name ?></pre>
    <?cs call:show_annotations_list(field) ?>
    <?cs call:description(field) ?>
    <?cs if:subcount(field.constantValue) ?>
      <p>Constant Value:
      <?cs if:field.constantValue.isString ?>
          <?cs var:field.constantValue.str ?>
      <?cs else ?>
          <?cs var:field.constantValue.dec ?>
          (<?cs var:field.constantValue.hex ?>)
      <?cs /if ?>
    <?cs /if ?>
</div>
<?cs /each ?>
<?cs /def ?>

<?cs def:write_method_details(methods) ?>
<?cs each:method=methods ?>
<?cs # the A tag in the next line must remain where it is, so that Eclipse can parse the docs ?>
<A NAME="<?cs var:method.anchor ?>"></A>
<?cs # The apilevel-N class MUST BE LAST in the sequence of class names ?>
<div class="api apilevel-<?cs var:method.since ?>"<?cs
     if:method.since ?>
     data-version-added="<?cs var:method.since ?>"<?cs
     /if ?><?cs
     if:method.deprecatedsince
       ?> data-version-deprecated="<?cs var:method.deprecatedsince ?>"<?cs
     /if ?>>
    <h3 class="api-name"><?cs var:method.name ?></h3>
    <div class="api-level">
      <div><?cs call:since_tags(method) ?></div>
      <?cs call:federated_refs(method) ?>
    </div>
<pre class="api-signature no-pretty-print">
<?cs if:string.length(method.scope) ?><?cs var:method.scope
?> <?cs /if ?><?cs if:string.length(method.static) ?><?cs var:method.static
?> <?cs /if ?><?cs if:string.length(method.final) ?><?cs var:method.final
?> <?cs /if ?><?cs if:string.length(method.abstract) ?><?cs var:method.abstract
?> <?cs /if ?><?cs if:subcount(method.returnType) ?><?cs call:type_link(method.returnType)
?> <?cs /if ?><?cs var:method.name ?> (<?cs call:parameter_list(method.params, 1) ?>)</pre>
    <?cs call:show_annotations_list(method) ?>
    <?cs call:description(method) ?>
</div>
<?cs /each ?>
<?cs /def ?>

<?cs def:write_attr_details(attrs) ?>
<?cs each:attr=attrs ?>
<?cs # the A tag in the next line must remain where it is, so that Eclipse can parse the docs ?>
<A NAME="<?cs var:attr.anchor ?>"></A>
<h3 class="api-name"><?cs var:attr.name ?></h3>
<?cs call:show_annotations_list(attr) ?>
<?cs call:description(attr) ?>
<?cs if:subcount(attr.methods) ?>
  <p><b>Related methods:</b></p>
  <ul class="nolist">
  <?cs each:m=attr.methods ?>
    <li><code><a href="<?cs var:toroot ?><?cs var:m.href ?>"><?cs var:m.name ?></a></code></li>
  <?cs /each ?>
  </ul>
<?cs /if ?>
<?cs /each ?>
<?cs /def ?>
<?cs
#########################
# END OF MACROS
# START OF PAGE PRINTING
#########################
?>
<?cs include:"doctype.cs" ?>
<html<?cs if:devsite ?> devsite<?cs /if ?>>
<?cs include:"head_tag.cs" ?>
<?cs include:"body_tag.cs" ?>
<div itemscope itemtype="http://developers.google.com/ReferenceObject">
<!-- This DIV closes at the end of the BODY -->
  <meta itemprop="name" content="<?cs var:class.qualifiedType.label ?>" />
  <?cs if:(dac&&class.artifact)
    ?><meta itemprop="path" content="<?cs
          if:class.deprecatedsince ?>Deprecated<?cs
          else ?>Support Library<?cs /if ?>" /><?cs
  elif:(dac&&class.since)
    ?><meta itemprop="path" content="<?cs
          if:class.deprecatedsince ?>Deprecated<?cs
          else ?>API level <?cs var:class.since ?><?cs /if ?>" /><?cs
  /if ?>
<?cs include:"header.cs" ?>
<?cs # Includes api-info-block DIV at top of page. Standard Devsite uses right nav. ?>
<?cs if:dac ?><?cs include:"page_info.cs" ?><?cs /if ?>
<?cs # This DIV spans the entire document to provide scope for some scripts ?>
<div class="api apilevel-<?cs var:class.since ?>" id="jd-content"<?cs
     if:class.since ?>
     data-version-added="<?cs var:class.since ?>"<?cs
     /if ?><?cs
     if:class.deprecatedsince
       ?> data-version-deprecated="<?cs var:class.deprecatedsince ?>"<?cs
     /if ?> >
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- ======== START OF CLASS DATA ======== -->
<?cs
#
# Page header with class name and signature
#
?>
<h1 class="api-title"><?cs var:class.name ?></h1>
<p>
<code class="api-signature">
  <?cs var:class.scope ?>
  <?cs var:class.static ?>
  <?cs var:class.final ?>
  <?cs var:class.abstract ?>
  <?cs var:class.kind ?>
  <?cs var:class.name ?>
</code>
<br>
<?cs set:colspan = subcount(class.inheritance) ?>
<?cs each:supr = class.inheritance ?>
<code class="api-signature">
  <?cs if:colspan == 2 ?>
    extends <?cs call:type_link(supr.short_class) ?>
  <?cs /if ?>
  <?cs if:last(supr) && subcount(supr.interfaces) ?>
      implements
      <?cs each:t=supr.interfaces ?>
        <?cs call:type_link(t) ?><?cs
          if: name(t)!=subcount(supr.interfaces)-1
            ?>, <?cs /if ?>
      <?cs /each ?>
  <?cs /if ?>
  <?cs set:colspan = colspan-1 ?>
</code>
<?cs /each ?>
</p><?cs
#
# Class inheritance tree
#
?><table class="jd-inheritance-table">
<?cs set:colspan = subcount(class.inheritance) ?>
<?cs each:supr = class.inheritance ?>
  <tr>
    <?cs loop:i = 1, (subcount(class.inheritance)-colspan), 1 ?>
      <td class="jd-inheritance-space">&nbsp;<?cs
        if:(subcount(class.inheritance)-colspan) == i
          ?>&nbsp;&nbsp;&#x21b3;<?cs
        /if ?></td>
    <?cs /loop ?>
    <td colspan="<?cs var:colspan ?>" class="jd-inheritance-class-cell"><?cs
      if:colspan == 1
          ?><?cs call:class_name(class.qualifiedType) ?><?cs
      else
          ?><?cs call:type_link(supr.class) ?><?cs
      /if ?>
    </td>
  </tr>
  <?cs set:colspan = colspan-1 ?>
<?cs /each ?>
</table><?cs
#
# Collapsible list of subclasses
#
?><?cs
if:subcount(class.subclasses.direct) && !class.subclasses.hidden ?>
  <table class="jd-sumtable jd-sumtable-subclasses">
    <tr>
      <td>
        <div class="expandable">
          <span class="expand-control">Known direct subclasses</span>
          <?cs call:expandable_class_list("subclasses-direct", class.subclasses.direct, "list") ?>
        </div>
      </td>
    </tr>
  </table>
  <?cs /if ?>
  <?cs if:subcount(class.subclasses.indirect) && !class.subclasses.hidden ?>
  <table class="jd-sumtable jd-sumtable-subclasses">
    <tr>
      <td>
        <div class="expandable">
          <span class="expand-control">Known indirect subclasses</span>
          <?cs call:expandable_class_list("subclasses-indirect", class.subclasses.indirect, "list") ?>
        </div>
      </td>
    </tr>
  </table><?cs
/if ?>
<?cs call:show_annotations_list(class) ?>
<br><hr><?cs
#
# The long-form class description.
#
?><?cs call:deprecated_warning(class) ?>

<?cs if:subcount(class.descr) ?>
  <p><?cs call:tag_list(class.descr) ?></p>
<?cs /if ?>

<?cs if:subcount(class.descrAux) ?>
  <?cs call:aux_tag_list(class.descrAux) ?>
<?cs /if ?>

<?cs call:see_also_tags(class.seeAlso) ?>
<?cs
#################
# CLASS SUMMARY
#################
?>
<?cs # make sure there is a summary view to display ?>
<?cs if:subcount(class.inners)
     || subcount(class.attrs)
     || inhattrs
     || subcount(class.enumConstants)
     || subcount(class.constants)
     || inhconstants
     || subcount(class.fields)
     || inhfields
     || subcount(class.ctors.public)
     || subcount(class.ctors.protected)
     || subcount(class.methods.public)
     || subcount(class.methods.protected)
     || inhmethods ?>
<h2 class="api-section">Summary</h2>

<?cs if:subcount(class.inners) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- ======== NESTED CLASS SUMMARY ======== -->
<table id="nestedclasses" class="responsive">
<tr><th colspan="2"><h3>Nested classes</h3></th></tr>
<?cs call:write_inners_summary(class.inners) ?>
<?cs /if ?>

<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<?cs if:subcount(class.attrs) ?>
<!-- =========== FIELD SUMMARY =========== -->
<table id="lattrs" class="responsive">
<tr><th colspan="2"><h3>XML attributes</h3></th></tr>
<?cs call:write_attr_summary(class.attrs, 1) ?>
<?cs /if ?>

<?cs # if there are inherited attrs, write the table ?>
<?cs if:inhattrs ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- =========== FIELD SUMMARY =========== -->
<table id="inhattrs" class="responsive inhtable">
<tr><th><h3>Inherited XML attributes</h3></th></tr>
<?cs each:cl=class.inherited ?>
<?cs if:subcount(cl.attrs) ?>
<tr class="api apilevel-<?cs var:cl.since ?>"<?cs
    if:cl.since ?>
    data-version-added="<?cs var:cl.since ?>"<?cs
    /if ?><?cs
    if:cl.deprecatedsince
      ?> data-version-deprecated="<?cs var:cl.deprecatedsince ?>"<?cs
    /if ?> >
<td colspan="2">
  <div class="expandable jd-inherited-apis">
    <span class="expand-control">From <?cs var:cl.kind ?>
      <code><?cs call:cond_link(cl.qualified, toroot, cl.link, cl.included) ?></code>
    </span>
    <table class="responsive">
      <?cs call:write_attr_summary(cl.attrs, cl.included) ?>
    </table>
  </div>
</td></tr>
<?cs /if ?>
<?cs /each ?>
</table>
<?cs /if ?>

<?cs if:subcount(class.enumConstants) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- =========== ENUM CONSTANT SUMMARY =========== -->
<table id="enumconstants" class="responsive constants">
  <tr><th colspan="2"><h3>Enum values</h3></th></tr>
<?cs set:count = #1 ?>
  <?cs each:field=class.enumConstants ?>
  <tr class="api apilevel-<?cs var:field.since ?>"<?cs
      if:field.since ?>
      data-version-added="<?cs var:field.since ?>"<?cs
      /if ?><?cs
      if:field.deprecatedsince
        ?> data-version-deprecated="<?cs var:field.deprecatedsince ?>"<?cs
      /if ?> >
    <td><code><?cs call:type_link(field.type) ?></code>&nbsp;</td>
    <td width="100%">
      <code><?cs call:cond_link(field.name, toroot, field.href, cl.included) ?></code>
      <p><?cs call:short_descr(field) ?>&nbsp;
      <?cs call:show_annotations_list(field) ?></p>
    </td>
  </tr>
  <?cs set:count = count + #1 ?>
  <?cs /each ?>
<?cs /if ?>

<?cs if:subcount(class.constants) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- =========== ENUM CONSTANT SUMMARY =========== -->
<table id="constants" class="responsive constants">
<tr><th colspan="2"><h3>Constants</h3></th></tr>
<?cs call:write_constant_summary(class.constants, 1) ?>
</table>
<?cs /if ?>

<?cs # if there are inherited constants, write the table ?>
<?cs if:inhconstants ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- =========== ENUM CONSTANT SUMMARY =========== -->
<table id="inhconstants" class="responsive constants inhtable">
<tr><th><h3>Inherited constants</h3></th></tr>
<?cs each:cl=class.inherited ?>
<?cs if:subcount(cl.constants) ?>
  <tr class="api apilevel-<?cs var:cl.since ?>"<?cs
      if:cl.since ?>
      data-version-added="<?cs var:cl.since ?>"<?cs
      /if ?><?cs
      if:cl.deprecatedsince
        ?> data-version-deprecated="<?cs var:cl.deprecatedsince ?>"<?cs
      /if ?> >
  <td>
    <div class="expandable jd-inherited-apis">
      <span class="expand-control">From <?cs var:cl.kind ?>
        <code><?cs call:cond_link(cl.qualified, toroot, cl.link, cl.included) ?></code>
      </span>
      <table class="responsive">
        <?cs call:write_constant_summary(cl.constants, cl.included) ?>
      </table>
    </div>
  </td></tr>
<?cs /if ?>
<?cs /each ?>
</table>
<?cs /if ?>

<?cs if:subcount(class.fields) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- =========== FIELD SUMMARY =========== -->
<table id="lfields" class="responsive properties">
<tr><th colspan="2"><h3>Fields</h3></th></tr>
<?cs call:write_field_summary(class.fields, 1) ?>
</table>
<?cs /if ?>

<?cs # if there are inherited fields, write the table ?>
<?cs if:inhfields ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- =========== FIELD SUMMARY =========== -->
<table id="inhfields" class="responsive properties inhtable">
<tr><th><h3>Inherited fields</h3></th></tr>
<?cs each:cl=class.inherited ?>
<?cs if:subcount(cl.fields) ?>
  <tr class="api apilevel-<?cs var:cl.since ?>"<?cs
      if:cl.since ?>
      data-version-added="<?cs var:cl.since ?>"<?cs
      /if ?><?cs
      if:cl.deprecatedsince
        ?> data-version-deprecated="<?cs var:cl.deprecatedsince ?>"<?cs
      /if ?> >
  <td>
    <div class="expandable jd-inherited-apis">
      <span class="expand-control">From <?cs var:cl.kind ?>
        <code><?cs call:cond_link(cl.qualified, toroot, cl.link, cl.included) ?></code>
      </span>
      <table class="responsive">
        <?cs call:write_field_summary(cl.fields, cl.included) ?>
      </table>
    </div>
  </td></tr>
<?cs /if ?>
<?cs /each ?>
</table>
<?cs /if ?>

<?cs if:subcount(class.ctors.public) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<table id="pubctors" class="responsive constructors">
<tr><th colspan="2"><h3>Public constructors</h3></th></tr>
<?cs call:write_method_summary(class.ctors.public, 1) ?>
</table>
<?cs /if ?>

<?cs if:subcount(class.ctors.protected) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<table id="proctors" class="responsive constructors">
<tr><th colspan="2"><h3>Protected constructors</h3></th></tr>
<?cs call:write_method_summary(class.ctors.protected, 1) ?>
</table>
<?cs /if ?>

<?cs if:subcount(class.methods.public) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- ========== METHOD SUMMARY =========== -->
<table id="pubmethods" class="responsive methods">
<tr><th colspan="2"><h3>Public methods</h3></th></tr>
<?cs call:write_method_summary(class.methods.public, 1) ?>
</table>
<?cs /if ?>

<?cs if:subcount(class.methods.protected) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- ========== METHOD SUMMARY =========== -->
<table id="promethods" class="reponsive methods">
<tr><th colspan="2"><h3>Protected methods</h3></th></tr>
<?cs call:write_method_summary(class.methods.protected, 1) ?>
</table>
<?cs /if ?>

<?cs # if there are inherited methods, write the table ?>
<?cs if:inhmethods ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- ========== METHOD SUMMARY =========== -->
<table id="inhmethods" class="responsive methods inhtable">
<tr><th><h3>Inherited methods</h3></th></tr>
<?cs each:cl=class.inherited ?>
<?cs if:subcount(cl.methods) ?>
<tr class="api apilevel-<?cs var:cl.since ?>"<?cs
    if:cl.since ?>
    data-version-added="<?cs var:cl.since ?>"<?cs
    /if ?><?cs
    if:cl.deprecatedsince
      ?> data-version-deprecated="<?cs var:cl.deprecatedsince ?>"<?cs
    /if ?> >
<td colspan="2">
  <div class="expandable jd-inherited-apis">
    <span class="expand-control">From <?cs var:cl.kind ?>
      <code>
        <?cs if:cl.included ?>
          <a href="<?cs var:toroot ?><?cs var:cl.link ?>"><?cs var:cl.qualified ?></a>
        <?cs elif:cl.federated ?>
          <a href="<?cs var:cl.link ?>"><?cs var:cl.qualified ?></a>
        <?cs else ?>
          <?cs var:cl.qualified ?>
        <?cs /if ?>
      </code>
    </span>
    <table class="responsive">
      <?cs call:write_method_summary(cl.methods, cl.included) ?>
    </table>
  </div>
</td></tr>
<?cs /if ?>
<?cs /each ?>
</table>
<?cs /if ?>
<?cs /if ?>
<?cs
################
# CLASS DETAILS
################
?>
<!-- XML Attributes -->
<?cs if:subcount(class.attrs) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- ========= FIELD DETAIL ======== -->
<h2 class="api-section">XML attributes</h2>
<?cs call:write_attr_details(class.attrs) ?>
<?cs /if ?>

<!-- Enum Values -->
<?cs if:subcount(class.enumConstants) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- ========= ENUM CONSTANTS DETAIL ======== -->
<h2 class="api-section">Enum values</h2>
<?cs call:write_field_details(class.enumConstants) ?>
<?cs /if ?>

<!-- Constants -->
<?cs if:subcount(class.constants) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- ========= ENUM CONSTANTS DETAIL ======== -->
<h2 class="api-section">Constants</h2>
<?cs call:write_field_details(class.constants) ?>
<?cs /if ?>

<!-- Fields -->
<?cs if:subcount(class.fields) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- ========= FIELD DETAIL ======== -->
<h2 class="api-section">Fields</h2>
<?cs call:write_field_details(class.fields) ?>
<?cs /if ?>

<!-- Public ctors -->
<?cs if:subcount(class.ctors.public) ?>
<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<h2 class="api-section">Public constructors</h2>
<?cs call:write_method_details(class.ctors.public) ?>
<?cs /if ?>

<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
<?cs if:subcount(class.ctors.protected) ?>
<h2 class="api-section">Protected constructors</h2>
<?cs call:write_method_details(class.ctors.protected) ?>
<?cs /if ?>

<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- ========= METHOD DETAIL ======== -->
<!-- Public methdos -->
<?cs if:subcount(class.methods.public) ?>
<h2 class="api-section">Public methods</h2>
<?cs call:write_method_details(class.methods.public) ?>
<?cs /if ?>

<?cs # this next line must be exactly like this to be parsed by eclipse ?>
<!-- ========= METHOD DETAIL ======== -->
<?cs if:subcount(class.methods.protected) ?>
<h2 class="api-section">Protected methods</h2>
<?cs call:write_method_details(class.methods.protected) ?>
<?cs /if ?>

<?cs # the next two lines must be exactly like this to be parsed by eclipse ?>
<!-- ========= END OF CLASS DATA ========= -->

</div><!-- end jd-content -->

<?cs if:devsite ?>

<div class="data-reference-resources-wrapper">
  <?cs if:subcount(class.package) ?>
  <ul data-reference-resources>
    <?cs call:list("Annotations", class.package.annotations) ?>
    <?cs call:list("Interfaces", class.package.interfaces) ?>
    <?cs call:list("Classes", class.package.classes) ?>
    <?cs call:list("Enums", class.package.enums) ?>
    <?cs call:list("Exceptions", class.package.exceptions) ?>
    <?cs call:list("Errors", class.package.errors) ?>
  </ul>
  <?cs elif:subcount(package) ?>
  <ul data-reference-resources>
    <?cs call:class_link_list("Annotations", package.annotations) ?>
    <?cs call:class_link_list("Interfaces", package.interfaces) ?>
    <?cs call:class_link_list("Classes", package.classes) ?>
    <?cs call:class_link_list("Enums", package.enums) ?>
    <?cs call:class_link_list("Exceptions", package.exceptions) ?>
    <?cs call:class_link_list("Errors", package.errors) ?>
  </ul>
  <?cs /if ?>
</div>
<?cs /if ?>

<?cs if:!devsite ?>
<?cs include:"footer.cs" ?>
<?cs include:"trailer.cs" ?>
<?cs /if ?>
</div><!-- end devsite ReferenceObject -->
</body>
</html>