${classDoc.containingPackage().nameWithDots()}
${classDoc.isInterface()?'Interface':'Class'} ${classDoc.name()}

${classDoc.commentText()}

<% if (classDoc.fields().length > 0) { %> <% for (field in classDoc.fields()) { %> <% } %> <% } %>
Field Summary
 ${field.type().typeName()} ${field.name()}
           
  <% if (classDoc.constructors().length > 0) { %> <% } %> <% for (constructor in classDoc.constructors()) { %> <% } %>
Constructor Summary
${constructor.name()}(<%= constructor.parameters().collect{ param -> "${param.isTypeAvailable()?'' + param.type().name() + '':param.typeName()} ${param.name()}" }.join(", ") %>)
           ${constructor.firstSentenceCommentText()}
  <% for (method in classDoc.methods()) { %> <% } %>
Method Summary
${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) { %>

Constructor Detail
<% } %> <% 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()}


<% } %>
Method Detail
<% 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()}


<% } %>