Module  jdk.compiler
软件包  com.sun.source.util

Class DocTreeScanner<R,P>

  • All Implemented Interfaces:
    DocTreeVisitor<R,P>
    已知直接子类:
    DocTreePathScanner


    public class DocTreeScanner<R,P>
    extends Object
    implements DocTreeVisitor<R,P>
    访问所有子树节点的TreeVisitor。 要访问特定类型的节点,只需覆盖相应的visitXYZ方法即可。 在你的方法中,调用super.visitXYZ来访问后代节点。

    visitXYZ方法的默认实现将确定如下的结果:

    • 如果被访问的节点没有子节点,结果将为null
    • 如果被访问的节点有一个孩子,结果将是该小孩的scan调用的结果。 孩子可能是一个简单的节点或本身的节点列表。
    • 如果所访问的节点有多个子节点,则通过依次调用每个子scan来确定结果,然后将第一次扫描的结果与迄今为止的累积结果相结合,由reduce(R, R)方法确定。 每个孩子可以是节点列表的简单节点。 reduce方法的默认行为是访问reduce方法的结果将是最后一个子扫描的结果。

    以下是一个示例来计算树中错误节点的数量:

      class CountErrors extends DocTreeScanner<Integer,Void> {
          @Override
          public Integer visitErroneous(ErroneousTree node, Void p) {
              return 1;
          }
          @Override
          public Integer reduce(Integer r1, Integer r2) {
              return (r1 == null ? 0 : r1) + (r2 == null ? 0 : r2);
          }
       } 
    从以下版本开始:
    1.8
    • 构造方法详细信息

      • DocTreeScanner

        public DocTreeScanner​()
    • 方法详细信息

      • scan

        public R scan​(DocTree node,
                      P p)
        扫描单个节点。
        参数
        node - 要扫描的节点
        p - 传递给访问方法的参数值
        结果
        访问方式的结果值
      • scan

        public R scan​(Iterable<? extends DocTree> nodes,
                      P p)
        扫描一系列节点。
        参数
        nodes - 要扫描的节点
        p - 要传递给每个节点的访问方法的参数值
        结果
        访问方法的组合返回值。 这些值使用reduce方法组合。
      • reduce

        public R reduce​(R r1,
                        R r2)
        将两个结果减少为一个组合的结果。 默认的实现是返回第一个参数。 该方法的一般合同是它可以采取任何行动。
        参数
        r1 - 要组合的第一个值
        r2 - 要组合的第二个值
        结果
        结合两个参数的结果
      • visitAttribute

        public R visitAttribute​(AttributeTree node,
                                P p)
        访问AttributeTree节点。 此实现返回null
        Specified by:
        visitAttribute在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 参数值
        结果
        扫描的结果
      • visitAuthor

        public R visitAuthor​(AuthorTree node,
                             P p)
        访问AuthorTree节点。 这个实现以从左到右的顺序扫描孩子。
        Specified by:
        visitAuthor在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 参数值
        结果
        扫描的结果
      • visitComment

        public R visitComment​(CommentTree node,
                              P p)
        访问CommentTree节点。 此实现返回null
        Specified by:
        visitComment在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 参数值
        结果
        扫描的结果
      • visitDeprecated

        public R visitDeprecated​(DeprecatedTree node,
                                 P p)
        访问DeprecatedTree节点。 这个实现以从左到右的顺序扫描孩子。
        Specified by:
        visitDeprecated在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 一个参数值
        结果
        扫描的结果
      • visitDocComment

        public R visitDocComment​(DocCommentTree node,
                                 P p)
        访问DocCommentTree节点。 这个实现以从左到右的顺序扫描孩子。
        Specified by:
        visitDocComment在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 参数值
        结果
        扫描的结果
      • visitDocRoot

        public R visitDocRoot​(DocRootTree node,
                              P p)
        访问DocRootTree节点。 此实现返回null
        Specified by:
        visitDocRoot在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 参数值
        结果
        扫描的结果
      • visitEndElement

        public R visitEndElement​(EndElementTree node,
                                 P p)
        访问EndElementTree节点。 此实现返回null
        Specified by:
        visitEndElement在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 参数值
        结果
        扫描的结果
      • visitEntity

        public R visitEntity​(EntityTree node,
                             P p)
        访问EntityTree节点。 此实现返回null
        Specified by:
        visitEntity在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 参数值
        结果
        扫描的结果
      • visitErroneous

        public R visitErroneous​(ErroneousTree node,
                                P p)
        访问ErroneousTree节点。 此实现返回null
        Specified by:
        visitErroneous接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 参数值
        结果
        扫描的结果
      • visitHidden

        public R visitHidden​(HiddenTree node,
                             P p)
        访问HiddenTree节点。 这个实现以从左到右的顺序扫描孩子。
        Specified by:
        visitHidden在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 参数值
        结果
        扫描的结果
      • visitIdentifier

        public R visitIdentifier​(IdentifierTree node,
                                 P p)
        访问IdentifierTree节点。 此实现返回null
        Specified by:
        visitIdentifier在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 参数值
        结果
        扫描的结果
      • visitIndex

        public R visitIndex​(IndexTree node,
                            P p)
        访问IndexTree节点。 此实现返回null
        Specified by:
        visitIndex在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 一个参数值
        结果
        扫描的结果
      • visitInheritDoc

        public R visitInheritDoc​(InheritDocTree node,
                                 P p)
        访问InheritDocTree节点。 此实现返回null
        Specified by:
        visitInheritDoc在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 参数值
        结果
        扫描的结果
      • visitLink

        public R visitLink​(LinkTree node,
                           P p)
        访问LinkTree节点。 这个实现以从左到右的顺序扫描孩子。
        Specified by:
        visitLink在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 参数值
        结果
        扫描的结果
      • visitLiteral

        public R visitLiteral​(LiteralTree node,
                              P p)
        访问LiteralTree节点。 此实现返回null
        Specified by:
        visitLiteral在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 参数值
        结果
        扫描的结果
      • visitParam

        public R visitParam​(ParamTree node,
                            P p)
        访问ParamTree节点。 这个实现以从左到右的顺序扫描孩子。
        Specified by:
        visitParam在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 参数值
        结果
        扫描的结果
      • visitProvides

        public R visitProvides​(ProvidesTree node,
                               P p)
        访问ProvideTree节点。 这个实现以从左到右的顺序扫描孩子。
        Specified by:
        visitProvides在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 参数值
        结果
        扫描的结果
      • visitReference

        public R visitReference​(ReferenceTree node,
                                P p)
        访问一个ReferenceTree节点。 此实现返回null
        Specified by:
        visitReference在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 参数值
        结果
        扫描的结果
      • visitReturn

        public R visitReturn​(ReturnTree node,
                             P p)
        访问ReturnTree节点。 这个实现以从左到右的顺序扫描孩子。
        Specified by:
        visitReturn在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 一个参数值
        结果
        扫描的结果
      • visitSee

        public R visitSee​(SeeTree node,
                          P p)
        访问SeeTree节点。 这个实现以从左到右的顺序扫描孩子。
        Specified by:
        visitSee在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 参数值
        结果
        扫描的结果
      • visitSerial

        public R visitSerial​(SerialTree node,
                             P p)
        访问SerialTree节点。 这个实现以从左到右的顺序扫描孩子。
        Specified by:
        visitSerial在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p
        结果
        扫描的结果
      • visitSerialData

        public R visitSerialData​(SerialDataTree node,
                                 P p)
        访问一个SerialDataTree节点。 这个实现以从左到右的顺序扫描孩子。
        Specified by:
        visitSerialData在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 一个参数值
        结果
        扫描的结果
      • visitSerialField

        public R visitSerialField​(SerialFieldTree node,
                                  P p)
        访问SerialFieldTree节点。 这个实现以从左到右的顺序扫描孩子。
        Specified by:
        visitSerialField在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 参数值
        结果
        扫描的结果
      • visitSince

        public R visitSince​(SinceTree node,
                            P p)
        访问SinceTree节点。 这个实现以从左到右的顺序扫描孩子。
        Specified by:
        visitSince在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 参数值
        结果
        扫描的结果
      • visitStartElement

        public R visitStartElement​(StartElementTree node,
                                   P p)
        访问StartElementTree节点。 这个实现以从左到右的顺序扫描孩子。
        Specified by:
        visitStartElement在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 参数值
        结果
        扫描的结果
      • visitText

        public R visitText​(TextTree node,
                           P p)
        访问TextTree节点。 此实现返回null
        Specified by:
        visitText在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 参数值
        结果
        扫描的结果
      • visitThrows

        public R visitThrows​(ThrowsTree node,
                             P p)
        访问ThrowsTree节点。 这个实现以从左到右的顺序扫描孩子。
        Specified by:
        visitThrows在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 参数值
        结果
        扫描的结果
      • visitUnknownBlockTag

        public R visitUnknownBlockTag​(UnknownBlockTagTree node,
                                      P p)
        访问UnknownBlockTagTree节点。 这个实现以从左到右的顺序扫描孩子。
        Specified by:
        visitUnknownBlockTag在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 参数值
        结果
        扫描的结果
      • visitUnknownInlineTag

        public R visitUnknownInlineTag​(UnknownInlineTagTree node,
                                       P p)
        访问UnknownInlineTagTree节点。 这个实现以从左到右的顺序扫描孩子。
        Specified by:
        visitUnknownInlineTag在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 参数值
        结果
        扫描的结果
      • visitUses

        public R visitUses​(UsesTree node,
                           P p)
        访问UsesTree节点。 这个实现以从左到右的顺序扫描孩子。
        Specified by:
        visitUses在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 参数值
        结果
        扫描的结果
      • visitValue

        public R visitValue​(ValueTree node,
                            P p)
        访问ValueTree节点。 这个实现以从左到右的顺序扫描孩子。
        Specified by:
        visitValue在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 参数值
        结果
        扫描的结果
      • visitVersion

        public R visitVersion​(VersionTree node,
                              P p)
        访问VersionTreeTree节点。 这个实现以从左到右的顺序扫描孩子。
        Specified by:
        visitVersion在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 参数值
        结果
        扫描的结果
      • visitOther

        public R visitOther​(DocTree node,
                            P p)
        访问未知类型的DocTree节点。 如果标签集发生变化并将新类型的节点添加到DocTree层次结构中,则可能会发生这种情况。 此实现返回null
        Specified by:
        visitOther在接口 DocTreeVisitor<R,P>
        参数
        node - 被访问的节点
        p - 参数值
        结果
        the result of scanning