Package org.openrewrite
Class TreeVisitor<T extends Tree,P>
java.lang.Object
org.openrewrite.TreeVisitor<T,P>
- Type Parameters:
T
- The type of tree.P
- An input object that is passed to every visit method.
- Direct Known Subclasses:
BinaryVisitor
,CreateFileVisitor
,FindRecipeRunException
,ParseErrorVisitor
,PlainTextVisitor
,Preconditions.Check
,QuarkVisitor
,RemoteVisitor
Abstract
TreeVisitor
for processing elements
Always returns input type T provides Parameterizable P input which is mutable allowing context to be shared
postProcessing via afterVisit for conditionally chaining other operations with the expectation is that after TreeVisitors are invoked immediately after visiting SourceFile
-
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescription<R extends Tree,
V extends TreeVisitor<R, P>>
Vstatic <R extends Tree,
C extends Collection<R>>
Ccollect
(TreeVisitor<?, ExecutionContext> visitor, Tree tree, C initial) static <U extends Tree,
R, C extends Collection<R>>
Ccollect
(TreeVisitor<?, ExecutionContext> visitor, Tree tree, C initial, Class<U> matchOn, Function<U, R> map) defaultValue
(@Nullable Tree tree, P p) protected void
doAfterVisit
(TreeVisitor<?, P> visitor) Execute the visitor once after the whole source file has been visited.protected List<TreeVisitor<?,
P>> final Cursor
boolean
isAcceptable
(SourceFile sourceFile, P p) boolean
isAdaptableTo
(Class<? extends TreeVisitor> adaptTo) static <T extends Tree,
P>
TreeVisitor<T,P> noop()
void
void
Can be used inpreVisit(Tree, Object)
to prevent a call tovisit(Tree, Object)
andpostVisit(Tree, Object)
, therefore stopping further navigation deeper down the tree.final Cursor
updateCursor
(T currentValue) Updates the cursor on this visitor and returns the updated cursor.void
protected final <T2 extends T>
T2visitAndCast
(@Nullable Tree tree, P p) protected final <T2 extends Tree>
T2visitAndCast
(T2 t, P p, BiFunction<T2, P, Tree> callSuper) <M extends Marker>
MvisitMarker
(Marker marker, P p) visitMarkers
(@Nullable Markers markers, P p) visitNonNull
(Tree tree, P p) By calling this method, you are asserting that you know that the outcome will be non-null when the compiler couldn't otherwise prove this to be the case.visitNonNull
(Tree tree, P p, Cursor parent) visitorTreeType
(Class<? extends TreeVisitor> v)
-
Constructor Details
-
TreeVisitor
public TreeVisitor()
-
-
Method Details
-
noop
-
isAcceptable
-
setCursor
-
getLanguage
- Returns:
- Describes the language type that this visitor applies to, e.g. java, xml, properties.
-
doAfterVisit
Execute the visitor once after the whole source file has been visited. The visitor is executed against the whole source file. This operation only happens once immediately after the containing visitor visits the whole source file. A subsequentRecipe
cycle will not run it.This method is ideal for one-off operations like auto-formatting, adding/removing imports, etc.
- Parameters:
visitor
- The visitor to run.
-
getAfterVisit
-
getCursor
-
updateCursor
Updates the cursor on this visitor and returns the updated cursor.- Parameters:
currentValue
- The new (current) value of the cursor based on a mutation of what was formerly theCursor.getValue()
.- Returns:
- The updated cursor.
-
preVisit
-
postVisit
-
visit
-
visitNonNull
By calling this method, you are asserting that you know that the outcome will be non-null when the compiler couldn't otherwise prove this to be the case. This method is a shortcut for having to assert the non-nullability of the returned tree.- Parameters:
tree
- A non-null tree.p
- A state object that passes through the visitor.- Returns:
- A non-null tree.
-
visitNonNull
-
collect
@Incubating(since="7.31.0") public static <R extends Tree,C extends Collection<R>> C collect(TreeVisitor<?, ExecutionContext> visitor, Tree tree, C initial) -
collect
@Incubating(since="7.31.0") public static <U extends Tree,R, C collectC extends Collection<R>> (TreeVisitor<?, ExecutionContext> visitor, Tree tree, C initial, Class<U> matchOn, Function<U, R> map) -
reduce
-
reduce
-
reduce
-
visit
-
visit
-
defaultValue
-
visitAndCast
@Incubating(since="7.0.0") protected final <T2 extends Tree> T2 visitAndCast(T2 t, P p, BiFunction<T2, P, Tree> callSuper) -
visitAndCast
-
visitMarkers
-
visitMarker
-
isAdaptableTo
-
visitorTreeType
-
adapt
-
stopAfterPreVisit
Can be used inpreVisit(Tree, Object)
to prevent a call tovisit(Tree, Object)
andpostVisit(Tree, Object)
, therefore stopping further navigation deeper down the tree.
-