# Interface DocTreeVisitor<R,P>

Type Parameters:
  `R` - the return type of this visitor's methods. Use `Void` for visitors that do not need to return results.
  `P` - the type of the additional parameter to this visitor's methods. Use `Void` for visitors that do not need an additional parameter.

All Known Implementing Classes:
  `DocTreePathScanner`, `DocTreeScanner`, `SimpleDocTreeVisitor`

public interface DocTreeVisitor<R,P>
A visitor of trees, in the style of the visitor design pattern. Classes implementing this interface are used to operate on a tree when the kind of tree is unknown at compile time. When a visitor is passed to a tree's `accept` method, the `visitXyz` method most applicable to that tree is invoked.

Classes implementing this interface may or may not throw a `NullPointerException` if the additional parameter `p` is `null`; see documentation of the implementing class for details.

WARNING: It is possible that methods will be added to this interface to accommodate new, currently unknown, doc comment structures added to future versions of the Java programming language. Therefore, visitor classes directly implementing this interface may be source incompatible with future versions of the platform.

Since:
  1.8

## Method Summary

Modifier and Type
Method
Description
`R`
`visitAttribute(AttributeTree node, P p)`
Visits an `AttributeTree` node.
`R`
`visitAuthor(AuthorTree node, P p)`
Visits an `AuthorTree` node.
`R`
`visitComment(CommentTree node, P p)`
Visits a `CommentTree` node.
`R`
`visitDeprecated(DeprecatedTree node, P p)`
Visits a `DeprecatedTree` node.
`R`
`visitDocComment(DocCommentTree node, P p)`
Visits a `DocCommentTree` node.
`R`
`visitDocRoot(DocRootTree node, P p)`
Visits a `DocRootTree` node.
`default R`
`visitDocType(DocTypeTree node, P p)`
Visits a `DocTypeTree` node.
`R`
`visitEndElement(EndElementTree node, P p)`
Visits an `EndElementTree` node.
`R`
`visitEntity(EntityTree node, P p)`
Visits an `EntityTree` node.
`R`
`visitErroneous(ErroneousTree node, P p)`
Visits an `ErroneousTree` node.
`default R`
`visitEscape(EscapeTree node, P p)`
Visits an `EscapeTree` node.
`default R`
`visitHidden(HiddenTree node, P p)`
Visits a `HiddenTree` node.
`R`
`visitIdentifier(IdentifierTree node, P p)`
Visits an `IdentifierTree` node.
`default R`
`visitIndex(IndexTree node, P p)`
Visits an `IndexTree` node.
`R`
`visitInheritDoc(InheritDocTree node, P p)`
Visits an `InheritDocTree` node.
`R`
`visitLink(LinkTree node, P p)`
Visits a `LinkTree` node.
`R`
`visitLiteral(LiteralTree node, P p)`
Visits an `LiteralTree` node.
`R`
`visitOther(DocTree node, P p)`
Visits an unknown type of `DocTree` node.
`R`
`visitParam(ParamTree node, P p)`
Visits a `ParamTree` node.
`default R`
`visitProvides(ProvidesTree node, P p)`
Visits a `ProvidesTree` node.
`default R`
`visitRawText(RawTextTree node, P p)`
Visits a `RawTextTree` node.
`R`
`visitReference(ReferenceTree node, P p)`
Visits a `ReferenceTree` node.
`R`
`visitReturn(ReturnTree node, P p)`
Visits a `ReturnTree` node.
`R`
`visitSee(SeeTree node, P p)`
Visits a `SeeTree` node.
`R`
`visitSerial(SerialTree node, P p)`
Visits a `SerialTree` node.
`R`
`visitSerialData(SerialDataTree node, P p)`
Visits a `SerialDataTree` node.
`R`
`visitSerialField(SerialFieldTree node, P p)`
Visits a `SerialFieldTree` node.
`R`
`visitSince(SinceTree node, P p)`
Visits a `SinceTree` node.
`default R`
`visitSnippet(SnippetTree node, P p)`
Visits a `SnippetTree` node.
`default R`
`visitSpec(SpecTree node, P p)`
Visits a `SpecTree` node.
`R`
`visitStartElement(StartElementTree node, P p)`
Visits a `StartElementTree` node.
`default R`
`visitSummary(SummaryTree node, P p)`
Visits a `SummaryTree` node.
`default R`
`visitSystemProperty(SystemPropertyTree node, P p)`
Visits a `SystemPropertyTree` node.
`R`
`visitText(TextTree node, P p)`
Visits a `TextTree` node.
`R`
`visitThrows(ThrowsTree node, P p)`
Visits a `ThrowsTree` node.
`R`
`visitUnknownBlockTag(UnknownBlockTagTree node, P p)`
Visits an `UnknownBlockTagTree` node.
`R`
`visitUnknownInlineTag(UnknownInlineTagTree node, P p)`
Visits an `UnknownInlineTagTree` node.
`default R`
`visitUses(UsesTree node, P p)`
Visits a `UsesTree` node.
`R`
`visitValue(ValueTree node, P p)`
Visits a `ValueTree` node.
`R`
`visitVersion(VersionTree node, P p)`
Visits a `VersionTree` node.

## Method Details

### visitAttribute

R visitAttribute(AttributeTree node, P p)
Visits an `AttributeTree` node.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value

### visitAuthor

R visitAuthor(AuthorTree node, P p)
Visits an `AuthorTree` node.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value

### visitComment

R visitComment(CommentTree node, P p)
Visits a `CommentTree` node.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value

### visitDeprecated

R visitDeprecated(DeprecatedTree node, P p)
Visits a `DeprecatedTree` node.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value

### visitDocComment

R visitDocComment(DocCommentTree node, P p)
Visits a `DocCommentTree` node.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value

### visitDocRoot

R visitDocRoot(DocRootTree node, P p)
Visits a `DocRootTree` node.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value

### visitDocType

default R visitDocType(DocTypeTree node, P p)
Visits a `DocTypeTree` node.

Implementation Requirements:
  Visits the provided `DocTypeTree` node by calling `visitOther(node, p)`.
Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value
Since:
  10

### visitEndElement

R visitEndElement(EndElementTree node, P p)
Visits an `EndElementTree` node.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value

### visitEntity

R visitEntity(EntityTree node, P p)
Visits an `EntityTree` node.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value

### visitErroneous

R visitErroneous(ErroneousTree node, P p)
Visits an `ErroneousTree` node.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value

### visitEscape

default R visitEscape(EscapeTree node, P p)
Visits an `EscapeTree` node.

Implementation Requirements:
  Visits the provided `EscapeTree` node by calling `visitOther(node, p)`.
Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value
Since:
  21

### visitHidden

default R visitHidden(HiddenTree node, P p)
Visits a `HiddenTree` node.

Implementation Requirements:
  Visits the provided `HiddenTree` node by calling `visitOther(node, p)`.
Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value
Since:
  9

### visitIdentifier

R visitIdentifier(IdentifierTree node, P p)
Visits an `IdentifierTree` node.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value

### visitIndex

default R visitIndex(IndexTree node, P p)
Visits an `IndexTree` node.

Implementation Requirements:
  Visits the provided `IndexTree` node by calling `visitOther(node, p)`.
Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value
Since:
  9

### visitInheritDoc

R visitInheritDoc(InheritDocTree node, P p)
Visits an `InheritDocTree` node.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value

### visitLink

R visitLink(LinkTree node, P p)
Visits a `LinkTree` node.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value

### visitLiteral

R visitLiteral(LiteralTree node, P p)
Visits an `LiteralTree` node.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value

### visitParam

R visitParam(ParamTree node, P p)
Visits a `ParamTree` node.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value

### visitProvides

default R visitProvides(ProvidesTree node, P p)
Visits a `ProvidesTree` node.

Implementation Requirements:
  Visits the provided `ProvidesTree` node by calling `visitOther(node, p)`.
Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value
Since:
  9

### visitRawText

default R visitRawText(RawTextTree node, P p)
Visits a `RawTextTree` node.

Implementation Requirements:
  Visits the provided `RawTextTree` node by calling `visitOther(node, p)`.
Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value
Since:
  23

### visitReference

R visitReference(ReferenceTree node, P p)
Visits a `ReferenceTree` node.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value

### visitReturn

R visitReturn(ReturnTree node, P p)
Visits a `ReturnTree` node.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value

### visitSee

R visitSee(SeeTree node, P p)
Visits a `SeeTree` node.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value

### visitSerial

R visitSerial(SerialTree node, P p)
Visits a `SerialTree` node.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value

### visitSerialData

R visitSerialData(SerialDataTree node, P p)
Visits a `SerialDataTree` node.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value

### visitSerialField

R visitSerialField(SerialFieldTree node, P p)
Visits a `SerialFieldTree` node.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value

### visitSince

R visitSince(SinceTree node, P p)
Visits a `SinceTree` node.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value

### visitSnippet

default R visitSnippet(SnippetTree node, P p)
Visits a `SnippetTree` node.

Implementation Requirements:
  Visits the provided `SnippetTree` node by calling `visitOther(node, p)`.
Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value
Since:
  18

### visitSpec

default R visitSpec(SpecTree node, P p)
Visits a `SpecTree` node.

Implementation Requirements:
  Visits the provided `SpecTree` node by calling `visitOther(node, p)`.
Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value
Since:
  20

### visitStartElement

R visitStartElement(StartElementTree node, P p)
Visits a `StartElementTree` node.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value

### visitSummary

default R visitSummary(SummaryTree node, P p)
Visits a `SummaryTree` node.

Implementation Requirements:
  Visits the provided `SummaryTree` node by calling `visitOther(node, p)`.
Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value
Since:
  10

### visitSystemProperty

default R visitSystemProperty(SystemPropertyTree node, P p)
Visits a `SystemPropertyTree` node.

Implementation Requirements:
  Visits the provided `SystemPropertyTree` node by calling `visitOther(node, p)`.
Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value
Since:
  12

### visitText

R visitText(TextTree node, P p)
Visits a `TextTree` node.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value

### visitThrows

R visitThrows(ThrowsTree node, P p)
Visits a `ThrowsTree` node.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value

### visitUnknownBlockTag

R visitUnknownBlockTag(UnknownBlockTagTree node, P p)
Visits an `UnknownBlockTagTree` node.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value

### visitUnknownInlineTag

R visitUnknownInlineTag(UnknownInlineTagTree node, P p)
Visits an `UnknownInlineTagTree` node.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value

### visitUses

default R visitUses(UsesTree node, P p)
Visits a `UsesTree` node.

Implementation Requirements:
  Visits a `UsesTree` node by calling `visitOther(node, p)`.
Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value
Since:
  9

### visitValue

R visitValue(ValueTree node, P p)
Visits a `ValueTree` node.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value

### visitVersion

R visitVersion(VersionTree node, P p)
Visits a `VersionTree` node.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value

### visitOther

R visitOther(DocTree node, P p)
Visits an unknown type of `DocTree` node. This can occur if the set of tags evolves and new kinds of nodes are added to the `DocTree` hierarchy.

Parameters:
  `node` - the node being visited
  `p` - a parameter value
Returns:
  a result value