<% def isVisible = { it.isPublic() || (it.isProtected() && props.protectedScope == 'true') || (!it.isProtected() && !it.isPrivate() && props.packageScope == 'true') || props.privateScope == 'true' } def title = packageDoc.nameWithDots() + (props.windowTitle ? " ($props.windowTitle)" : "") // TODO enable errors(), enums() etc in SimpleGroovyPackageDoc then replace closures below def classTypes = [ "Interface" : { it.isInterface() }, "Trait" : { it.isTrait() }, "Class" : { it.isClass() && !it.parentClasses*.qualifiedTypeName().contains('java.lang.Throwable') }, "Enum" : { it.isEnum() }, "Exception" : { it.isClass() && it.parentClasses*.qualifiedTypeName().contains('java.lang.Exception') }, "Error" : { it.isClass() && it.parentClasses*.qualifiedTypeName().contains('java.lang.Error') }, "Annotation Type" : { it.isAnnotationType() }, "Script" : { it.isScript() } ] %> ${title}

Package ${packageDoc.nameWithDots()}

${packageDoc.description()}

<% classTypes.each { k, v -> if (packageDoc.allClasses().any{ isVisible(it) && v(it) }) { %>
<% } %> <% } %>