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 voiddoAfterVisit(TreeVisitor<?, P> visitor) Execute the visitor once after the whole source file has been visited.protected List<TreeVisitor<?,P>> final CursorbooleanisAcceptable(SourceFile sourceFile, P p) booleanisAdaptableTo(Class<? extends TreeVisitor> adaptTo) static <T extends Tree,P>
TreeVisitor<T,P> noop()voidvoidCan be used inpreVisit(Tree, Object)to prevent a call tovisit(Tree, Object)andpostVisit(Tree, Object), therefore stopping further navigation deeper down the tree.final CursorupdateCursor(T currentValue) Updates the cursor on this visitor and returns the updated cursor.voidprotected 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 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.
-
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.
-