private void startAttribute(Attributes atts) {
    if (!seenAttribute) {
      // Print header row
      pw.println("<tr valign=\"top\">");
      pw.println("  <th align=\"left\">Attributes</th>");
      pw.println("  <th align=\"left\" colspan=\"2\">Name</th>");
      pw.println("  <th align=\"left\">Type</th>");
      pw.println("  <th align=\"left\">Description</th>");
      pw.println("  <th align=\"left\">Writable</th>");
      pw.println("</tr>");

    }

    seenAttribute = true;

    String name = atts.getValue(NAME);
    String description = atts.getValue(DESCRIPTION);
    String type = atts.getValue(TYPE);
    String writeable = atts.getValue(WRITEABLE);

    pw.println("<tr valign=\"top\">");
    pw.println("  <td></td>");
    pw.println("  <td colspan=\"2\">" + name + "</td>");
    pw.println("  <td>" + type + "</td>");
    pw.println("  <td>" + description + "</td>");
    pw.println("  <td>" + writeable + "</td>");
    pw.println("</tr>");
  }
Generates a table row for an MBean attribute
geode-core/src/main/java/org/apache/geode/admin/jmx/internal/GenerateMBeanHTML.java