模块 jdk.compiler

类 DocTreeScanner<R,P>

java.lang.Object
com.sun.source.util.DocTreeScanner<R,P>
类型参数:
R - 此访问者方法的返回类型。对不需要返回结果的访问者使用Void
P - 此访问者方法的附加参数的类型。 Void 用于不需要额外参数的访问者。
所有已实现的接口:
DocTreeVisitor<R,P>
已知子类:
DocTreePathScanner

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

这是一个计算树中错误节点数的示例:

  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);
   }
  }
 
实现要求:

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

  • 如果被访问的节点没有子节点,则结果将为 null
  • 如果被访问的节点有一个孩子,则结果将是对该孩子调用 scan 的结果。孩子可能是一个简单的节点或本身就是一个节点列表。
  • 如果被访问的节点有多个子节点,则结果将通过对每个子节点依次调用 scan 来确定,然后将第一次扫描后的每次扫描结果与到目前为止的累积结果相结合,由 reduce(R, R) 方法确定。每个子节点可以是一个简单节点或一个节点列表。 reduce 方法的默认行为是 visitXYZ 方法的结果将是最后一个孩子扫描的结果。
自从:
1.8
  • 构造方法详细信息

    • DocTreeScanner

      public DocTreeScanner()
      构造一个 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 节点。
      指定者:
      visitAttribute 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现按从左到右的顺序扫描子项。
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
    • visitAuthor

      public R  visitAuthor(AuthorTree  node, P  p)
      访问 AuthorTree 节点。
      指定者:
      visitAuthor 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现按从左到右的顺序扫描子项。
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
    • visitComment

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

      public R  visitDeprecated(DeprecatedTree  node, P  p)
      访问 DeprecatedTree 节点。
      指定者:
      visitDeprecated 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现按从左到右的顺序扫描子项。
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
    • visitDocComment

      public R  visitDocComment(DocCommentTree  node, P  p)
      访问 DocCommentTree 节点。
      指定者:
      visitDocComment 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现按从左到右的顺序扫描子项。
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
    • visitDocRoot

      public R  visitDocRoot(DocRootTree  node, P  p)
      访问 DocRootTree 节点。
      指定者:
      visitDocRoot 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现返回 null
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
    • visitDocType

      public R  visitDocType(DocTypeTree  node, P  p)
      访问 DocTypeTree 节点。
      指定者:
      visitDocType 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现返回 null
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
    • visitEndElement

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

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

      public R  visitErroneous(ErroneousTree  node, P  p)
      访问 ErroneousTree 节点。
      指定者:
      visitErroneous 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现返回 null
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
    • visitHidden

      public R  visitHidden(HiddenTree  node, P  p)
      访问 HiddenTree 节点。
      指定者:
      visitHidden 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现按从左到右的顺序扫描子项。
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
    • visitIdentifier

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

      public R  visitIndex(IndexTree  node, P  p)
      访问 IndexTree 节点。
      指定者:
      visitIndex 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现按从左到右的顺序扫描子项。
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
    • visitInheritDoc

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

      public R  visitLink(LinkTree  node, P  p)
      访问 LinkTree 节点。
      指定者:
      visitLink 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现按从左到右的顺序扫描子项。
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
    • visitLiteral

      public R  visitLiteral(LiteralTree  node, P  p)
      访问 LiteralTree 节点。
      指定者:
      visitLiteral 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现按从左到右的顺序扫描子项。
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
    • visitParam

      public R  visitParam(ParamTree  node, P  p)
      访问 ParamTree 节点。
      指定者:
      visitParam 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现按从左到右的顺序扫描子项。
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
    • visitProvides

      public R  visitProvides(ProvidesTree  node, P  p)
      访问 ProvidesTree 节点。
      指定者:
      visitProvides 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现按从左到右的顺序扫描子项。
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
    • visitReference

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

      public R  visitReturn(ReturnTree  node, P  p)
      访问 ReturnTree 节点。
      指定者:
      visitReturn 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现按从左到右的顺序扫描子项。
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
    • visitSee

      public R  visitSee(SeeTree  node, P  p)
      访问 SeeTree 节点。
      指定者:
      visitSee 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现按从左到右的顺序扫描子项。
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
    • visitSerial

      public R  visitSerial(SerialTree  node, P  p)
      访问 SerialTree 节点。
      指定者:
      visitSerial 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现按从左到右的顺序扫描子项。
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
    • visitSerialData

      public R  visitSerialData(SerialDataTree  node, P  p)
      访问 SerialDataTree 节点。
      指定者:
      visitSerialData 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现按从左到右的顺序扫描子项。
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
    • visitSerialField

      public R  visitSerialField(SerialFieldTree  node, P  p)
      访问 SerialFieldTree 节点。
      指定者:
      visitSerialField 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现按从左到右的顺序扫描子项。
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
    • visitSince

      public R  visitSince(SinceTree  node, P  p)
      访问 SinceTree 节点。
      指定者:
      visitSince 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现按从左到右的顺序扫描子项。
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
    • visitSnippet

      public R  visitSnippet(SnippetTree  node, P  p)
      访问 SnippetTree 节点。
      指定者:
      visitSnippet 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现按从左到右的顺序扫描子项。
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
      自从:
      18
    • visitSpec

      public R  visitSpec(SpecTree  node, P  p)
      访问 SpecTree 节点。
      指定者:
      visitSpec 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现按从左到右的顺序扫描子项。
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
      自从:
      20
    • visitStartElement

      public R  visitStartElement(StartElementTree  node, P  p)
      访问 StartElementTree 节点。
      指定者:
      visitStartElement 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现按从左到右的顺序扫描子项。
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
    • visitSummary

      public R  visitSummary(SummaryTree  node, P  p)
      访问 SummaryTree 节点。
      指定者:
      visitSummary 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现按从左到右的顺序扫描子项。
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
      自从:
      10
    • visitSystemProperty

      public R  visitSystemProperty(SystemPropertyTree  node, P  p)
      访问 SystemPropertyTree 节点。
      指定者:
      visitSystemProperty 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现返回 null
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
      自从:
      12
    • visitText

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

      public R  visitThrows(ThrowsTree  node, P  p)
      访问 ThrowsTree 节点。
      指定者:
      visitThrows 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现按从左到右的顺序扫描子项。
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
    • visitUnknownBlockTag

      public R  visitUnknownBlockTag(UnknownBlockTagTree  node, P  p)
      访问 UnknownBlockTagTree 节点。
      指定者:
      visitUnknownBlockTag 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现按从左到右的顺序扫描子项。
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
    • visitUnknownInlineTag

      public R  visitUnknownInlineTag(UnknownInlineTagTree  node, P  p)
      访问 UnknownInlineTagTree 节点。
      指定者:
      visitUnknownInlineTag 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现按从左到右的顺序扫描子项。
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
    • visitUses

      public R  visitUses(UsesTree  node, P  p)
      访问 UsesTree 节点。
      指定者:
      visitUses 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现按从左到右的顺序扫描子项。
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
    • visitValue

      public R  visitValue(ValueTree  node, P  p)
      访问 ValueTree 节点。
      指定者:
      visitValue 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现按从左到右的顺序扫描子项。
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
    • visitVersion

      public R  visitVersion(VersionTree  node, P  p)
      访问 VersionTree 节点。
      指定者:
      visitVersion 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现按从左到右的顺序扫描子项。
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果
    • visitOther

      public R  visitOther(DocTree  node, P  p)
      访问未知类型的 DocTree 节点。如果标签集发生变化并且新类型的节点被添加到 DocTree 层次结构中,就会发生这种情况。
      指定者:
      visitOther 在接口 DocTreeVisitor<R,P>
      实现要求:
      此实现返回 null
      参数:
      node - 被访问的节点
      p - 一个参数值
      返回:
      扫描结果