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,FindRecipeRunException,HasSourcePath,PlainTextVisitor,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) describeLocation(Cursor cursor) protected voiddoAfterVisit(Recipe recipe) Execute the recipe's main visitor once after the whole source file has been visited.protected voiddoAfterVisit(TreeVisitor<T, P> visitor) Execute the visitor once after the whole source file has been visited.protected List<TreeVisitor<T,P>> final CursorbooleanisAcceptable(SourceFile sourceFile, P p) booleanisAdaptableTo(Class<? extends TreeVisitor> adaptTo) static <T extends Tree,P>
TreeVisitor<T,P> noop()voidvoidprotected 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(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) visitSourceFile(SourceFile sourceFile, P p)
-
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 subsequentRecipecycle 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.
-
doAfterVisit
Execute the recipe's main 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 subsequentRecipecycle will not run it.This method is ideal for one-off operations like auto-formatting, adding/removing imports, etc.
- Parameters:
recipe- The recipe whose visitor to run.
-
getAfterVisit
-
getCursor
-
preVisit
-
postVisit
-
visit
-
visitSourceFile
-
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
-
adapt
-
describeLocation
-