code: public SrcTree generate(String[] srcFiles, Charset srcCharset, String[] classPathEntries) {
          // collect root class and method table without code body
          CollectRootRequestor rootRequestor = new CollectRootRequestor();
          parseAST(srcFiles, srcCharset, classPathEntries, rootRequestor);
  
          // collect sub class and method table without code body
          CollectSubRequestor subRequestor = new CollectSubRequestor(rootRequestor.getRootClassTable());
          parseAST(srcFiles, srcCharset, classPathEntries, subRequestor);
  
          // add additional TestDoc to the table
          AdditionalTestDocsSetter setter = new AdditionalTestDocsSetter(
                  rootRequestor.getRootClassTable(), subRequestor.getSubClassTable(),
                  rootRequestor.getRootMethodTable(), subRequestor.getSubMethodTable());
          setter.set(additionalTestDocs);
  
          // collect code
          CollectCodeRequestor codeRequestor = new CollectCodeRequestor(
                  subRequestor.getSubClassTable(), rootRequestor.getRootMethodTable(),
                  subRequestor.getSubMethodTable(), subRequestor.getFieldTable());
          parseAST(srcFiles, srcCharset, classPathEntries, codeRequestor);
  
          SrcTree result = new SrcTree();
          result.setRootClassTable(rootRequestor.getRootClassTable());
          result.setSubClassTable(subRequestor.getSubClassTable());
          result.setRootMethodTable(rootRequestor.getRootMethodTable());
          result.setSubMethodTable(subRequestor.getSubMethodTable());
          result.setFieldTable(subRequestor.getFieldTable());
          return result;
      }
docs: all class containing sub directories even if the class is in a named package