${classDoc.containingPackage().nameWithDots()}
${classDoc.isInterface()?'Interface':'Class'} ${classDoc.name()}
${classDoc.commentText()}
<% if (classDoc.fields().length > 0) { %>
| Field Summary | 
  <% for (field in classDoc.fields()) { %>
    
    |   ${field.type().typeName()} | ${field.name()}
 | 
  <% } %>
<% } %>
 
<% if (classDoc.constructors().length > 0) { %>
| Constructor Summary | 
<% } %>
<% for (constructor in classDoc.constructors()) { %>
| ${constructor.name()}(<%= constructor.parameters().collect{ param -> "${param.isTypeAvailable()?'' + param.type().name() + '':param.typeName()} ${param.name()}" }.join(", ") %>)${constructor.firstSentenceCommentText()}
 | 
<% } %>
 
| Method Summary | 
<% for (method in classDoc.methods()) { %>
  
    | ${method.isStatic()?"static ":""}${method.isReturnTypeAvailable()?'' + method.returnType().name() + '':method.returnType().fullDottedName()} | ${method.name()}(<%= method.parameters().collect{ param -> "${param.isTypeAvailable()?'' + param.type().name() + '':param.typeName()} ${param.name()}" }.join(", ") %>)${method.firstSentenceCommentText()}
 | 
<% } %>
 
<% if (classDoc.constructors().length > 0) { %>
<% } %>
<% for (constructor in classDoc.constructors()) { %>
${constructor.name()}
${constructor.isPublic()?"public ":""}${constructor.name()}(<%= constructor.parameters().collect{ param -> "${param.isTypeAvailable()?'' + param.type().name() + '':param.typeName()} ${param.name()}" }.join(", ") %>)
- ${constructor.commentText()}
 
<% } %>
<% for (method in classDoc.methods()) { %>
${method.name()}
${method.isPublic()?"public ":""}${method.isStatic()?"static ":""}${method.isReturnTypeAvailable()?'' + method.returnType().name() + '':method.returnType().fullDottedName()} ${method.name()}(<%= method.parameters().collect{ param -> "${param.isTypeAvailable()?'' + param.type().name() + '':param.typeName()} ${param.name()}" }.join(", ") %>)
- ${method.commentText()}
 
- 
 
- 
 
<% } %>