< prev index next >

src/jdk.javadoc/share/classes/jdk/javadoc/internal/doclets/toolkit/builders/MemberSummaryBuilder.java

Print this page

        

*** 77,89 **** protected final TypeElement typeElement; /** * Construct a new MemberSummaryBuilder. * - * @param classWriter the writer for the class whose members are being - * summarized. * @param context the build context. */ private MemberSummaryBuilder(Context context, TypeElement typeElement) { super(context); this.typeElement = typeElement; memberSummaryWriters = new EnumMap<>(VisibleMemberMap.Kind.class); --- 77,88 ---- protected final TypeElement typeElement; /** * Construct a new MemberSummaryBuilder. * * @param context the build context. + * @param typeElement the typeElement. */ private MemberSummaryBuilder(Context context, TypeElement typeElement) { super(context); this.typeElement = typeElement; memberSummaryWriters = new EnumMap<>(VisibleMemberMap.Kind.class);
*** 335,345 **** SortedSet<Element> members = asSortedSet(visibleMemberMap.getLeafMembers()); if (!members.isEmpty()) { List<Content> tableContents = new LinkedList<>(); int counter = 0; for (Element member : members) { ! final Element property = visibleMemberMap.getPropertyMemberDoc(member); if (property != null) { processProperty(visibleMemberMap, member, property); } List<? extends DocTree> firstSentenceTags = utils.getFirstSentenceTrees(member); if (utils.isExecutableElement(member) && firstSentenceTags.isEmpty()) { --- 334,344 ---- SortedSet<Element> members = asSortedSet(visibleMemberMap.getLeafMembers()); if (!members.isEmpty()) { List<Content> tableContents = new LinkedList<>(); int counter = 0; for (Element member : members) { ! final Element property = visibleMemberMap.getPropertyElement(member); if (property != null) { processProperty(visibleMemberMap, member, property); } List<? extends DocTree> firstSentenceTags = utils.getFirstSentenceTrees(member); if (utils.isExecutableElement(member) && firstSentenceTags.isEmpty()) {
*** 473,506 **** * @param visibleMemberMap the map for the members to document. * @param summaryTreeList list of content trees to which the documentation will be added */ private void buildInheritedSummary(MemberSummaryWriter writer, VisibleMemberMap visibleMemberMap, LinkedList<Content> summaryTreeList) { ! for (TypeElement inhclass : visibleMemberMap.getVisibleClasses()) { ! if (!(utils.isPublic(inhclass) || utils.isLinkable(inhclass))) { continue; } ! if (inhclass == typeElement) { continue; } ! SortedSet<Element> inhmembers = asSortedSet(visibleMemberMap.getMembers(inhclass)); ! if (!inhmembers.isEmpty()) { ! Content inheritedTree = writer.getInheritedSummaryHeader(inhclass); ! Content linksTree = writer.getInheritedSummaryLinksTree(); ! for (Element member : inhmembers) { ! TypeElement t= inhclass; ! if (utils.isPackagePrivate(inhclass) && !utils.isLinkable(inhclass)) { ! t = typeElement; } ! writer.addInheritedMemberSummary(t, member, inhmembers.first() == member, ! inhmembers.last() == member, linksTree); } inheritedTree.addContent(linksTree); summaryTreeList.add(writer.getMemberTree(inheritedTree)); } } } /** * Add the summary for the documentation. * * @param writer the writer for this member summary. --- 472,532 ---- * @param visibleMemberMap the map for the members to document. * @param summaryTreeList list of content trees to which the documentation will be added */ private void buildInheritedSummary(MemberSummaryWriter writer, VisibleMemberMap visibleMemberMap, LinkedList<Content> summaryTreeList) { ! for (TypeElement inheritedClass : visibleMemberMap.getVisibleClasses()) { ! if (!(utils.isPublic(inheritedClass) || utils.isLinkable(inheritedClass))) { continue; } ! if (inheritedClass == typeElement) { continue; } ! SortedSet<Element> inheritedMembersFromMap = asSortedSet( ! visibleMemberMap.getMembers(inheritedClass)); ! ! if (!inheritedMembersFromMap.isEmpty()) { ! SortedSet<Element> inheritedMembers = new TreeSet<>(comparator); ! List<ExecutableElement> enclosedSuperMethods = utils.getMethods(inheritedClass); ! for (Element inheritedMember : inheritedMembersFromMap) { ! if (visibleMemberMap.kind != VisibleMemberMap.Kind.METHODS) { ! inheritedMembers.add(inheritedMember); ! continue; } ! ! // If applicable, filter those overridden methods that ! // should not be documented in the summary/detail sections ! // instead document them in the footnote, care must be taken ! // to handle fx property methods which have no source comments, ! // but comments are synthesized on the output. ! ExecutableElement inheritedMethod = (ExecutableElement)inheritedMember; ! if (enclosedSuperMethods.stream() ! .anyMatch(e -> utils.executableMembersEqual(inheritedMethod, e) ! && (!utils.isSimpleOverride(e) ! || visibleMemberMap.getPropertyElement(e) != null))) { ! inheritedMembers.add(inheritedMember); } + } + + Content inheritedTree = writer.getInheritedSummaryHeader(inheritedClass); + Content linksTree = writer.getInheritedSummaryLinksTree(); + addSummaryFootNote(inheritedClass, inheritedMembers, linksTree, writer); inheritedTree.addContent(linksTree); summaryTreeList.add(writer.getMemberTree(inheritedTree)); } } } + + private void addSummaryFootNote(TypeElement inheritedClass, SortedSet<Element> inheritedMembers, + Content linksTree, MemberSummaryWriter writer) { + for (Element member : inheritedMembers) { + TypeElement t = (utils.isPackagePrivate(inheritedClass) && !utils.isLinkable(inheritedClass)) + ? typeElement : inheritedClass; + writer.addInheritedMemberSummary(t, member, inheritedMembers.first() == member, + inheritedMembers.last() == member, linksTree); + } + } /** * Add the summary for the documentation. * * @param writer the writer for this member summary.
< prev index next >