/// Create a list of the type classes to be documented, applying the user-specified filters along the way.
//
int nClassMethods = typeClass.getNClassMethods();
List<ClassMethod> classMethodsList = new ArrayList<ClassMethod>(nClassMethods);
for (int i = 0; i < nClassMethods; i++) {
ClassMethod entity = typeClass.getNthClassMethod(i);
if (filter.shouldGenerateScopedEntity(entity)) {
classMethodsList.add(entity);
}
}
ModuleName moduleName = typeClass.getName().getModuleName();
////
/// Generate documentation for each method of this class, and add each to the main index
/// and the argument type and return type indices.
//
List<IndexEntry> perModuleFunctionalAgentIndex = getPerModuleFunctionalAgentIndex(moduleName);
int nClassMethodsToGenerate = classMethodsList.size();
beginClassMethodDocList(nClassMethodsToGenerate);
for (int i = 0; i < nClassMethodsToGenerate; i++) {
ClassMethod classMethod = classMethodsList.get(i);
QualifiedName classMethodName = classMethod.getName();
perModuleFunctionalAgentIndex.add(new IndexEntry(classMethodName.getUnqualifiedName(), labelMaker.getLabel(classMethod), classMethod.getScope(), IndexEntry.Kind.FUNCTIONAL_AGENT));
processEnvEntityForArgAndReturnTypeIndices(classMethod);
generateClassMethodDoc(classMethod, i);
}