Package org.openrewrite.java
Class JavaRefactorVisitor
- java.lang.Object
-
- org.openrewrite.AbstractSourceVisitor<T>
-
- org.openrewrite.AbstractRefactorVisitor<J>
-
- org.openrewrite.java.JavaRefactorVisitor
-
- All Implemented Interfaces:
JavaSourceVisitor<J>
,org.openrewrite.RefactorVisitor<J>
,org.openrewrite.SourceVisitor<J>
- Direct Known Subclasses:
JavaIsoRefactorVisitor
,UnwrapParentheses.Scoped
public class JavaRefactorVisitor extends org.openrewrite.AbstractRefactorVisitor<J> implements JavaSourceVisitor<J>
This is the class you want to extend from if your visitor might ever want to swap the AST element being visited for a different type of AST element. For example visiting a method declaration and returning a field. Most visitors do not need this flexibility and can extend JavaIsomorphicRefactorVisitor whose type signatures insist that when visiting an AST element the returned element must be of the same type.
-
-
Field Summary
Fields Modifier and Type Field Description protected JavaFormatter
formatter
protected TreeBuilder
treeBuilder
-
Constructor Summary
Constructors Constructor Description JavaRefactorVisitor()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
addImport(java.lang.String fullyQualifiedName)
This method will add an import to the compilation unit regardless if a reference to the type exists.void
addImport(java.lang.String fullyQualifiedName, java.lang.String staticMethod)
This method will add an import to the compilation unit regardless if a reference to the type/method exists.void
maybeAddImport(java.lang.String fullyQualifiedName)
This method will add an import to the compilation unit if there is a reference to the type.void
maybeAddImport(java.lang.String fullyQualifiedName, java.lang.String staticMethod)
This method will add a static import to the compilation unit if there is a reference to the type/method.void
maybeAddImport(JavaType.FullyQualified clazz)
This method will add an import to the compilation unit if there is a reference to the type.void
maybeRemoveImport(java.lang.String fullyQualifiedName)
void
maybeRemoveImport(JavaType.FullyQualified clazz)
void
maybeUnwrapParentheses(org.openrewrite.Cursor parensCursor)
J
visitAnnotatedType(J.AnnotatedType annotatedType)
J
visitAnnotation(J.Annotation annotation)
J
visitArrayAccess(J.ArrayAccess arrayAccess)
J
visitArrayType(J.ArrayType arrayType)
J
visitAssert(J.Assert azzert)
J
visitAssign(J.Assign assign)
J
visitAssignOp(J.AssignOp assignOp)
J
visitBinary(J.Binary binary)
J
visitBlock(J.Block<J> block)
J
visitBreak(J.Break breakStatement)
J
visitCase(J.Case caze)
J
visitCatch(J.Try.Catch catzh)
J
visitClassDecl(J.ClassDecl classDecl)
J
visitCompilationUnit(J.CompilationUnit cu)
J
visitContinue(J.Continue continueStatement)
J
visitDoWhileLoop(J.DoWhileLoop doWhileLoop)
J
visitElse(J.If.Else elze)
J
visitEmpty(J.Empty empty)
J
visitEnumValue(J.EnumValue enoom)
J
visitEnumValueSet(J.EnumValueSet enums)
J
visitFieldAccess(J.FieldAccess fieldAccess)
J
visitFinally(J.Try.Finally finallie)
J
visitForEachLoop(J.ForEachLoop forLoop)
J
visitForLoop(J.ForLoop forLoop)
J
visitIdentifier(J.Ident ident)
J
visitIf(J.If iff)
J
visitImport(J.Import impoort)
J
visitInstanceOf(J.InstanceOf instanceOf)
J
visitLabel(J.Label label)
J
visitLambda(J.Lambda lambda)
J
visitLiteral(J.Literal literal)
J
visitMemberReference(J.MemberReference memberRef)
J
visitMethod(J.MethodDecl method)
J
visitMethodInvocation(J.MethodInvocation method)
J
visitMultiCatch(J.MultiCatch multiCatch)
J
visitMultiVariable(J.VariableDecls multiVariable)
J
visitNewArray(J.NewArray newArray)
J
visitNewClass(J.NewClass newClass)
J
visitPackage(J.Package pkg)
J
visitParameterizedType(J.ParameterizedType type)
<T extends J>
JvisitParentheses(J.Parentheses<T> parens)
J
visitPrimitive(J.Primitive primitive)
J
visitReturn(J.Return retrn)
J
visitStatement(Statement statement)
J
visitSwitch(J.Switch switzh)
J
visitSynchronized(J.Synchronized synch)
J
visitTernary(J.Ternary ternary)
J
visitThrow(J.Throw thrown)
J
visitTry(J.Try tryable)
J
visitTypeCast(J.TypeCast typeCast)
J
visitTypeName(NameTree name)
J
visitTypeParameter(J.TypeParameter typeParam)
J
visitTypeParameters(J.TypeParameters typeParams)
J
visitUnary(J.Unary unary)
J
visitUnparsedSource(J.UnparsedSource unparsed)
J
visitVariable(J.VariableDecls.NamedVar variable)
J
visitWhileLoop(J.WhileLoop whileLoop)
J
visitWildcard(J.Wildcard wildcard)
-
Methods inherited from class org.openrewrite.AbstractRefactorVisitor
andThen, andThen, next, refactor, refactor, refactor
-
Methods inherited from class org.openrewrite.AbstractSourceVisitor
getCursor, setCursoringOn, visit, visitAfter, visitAfter
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.openrewrite.java.JavaSourceVisitor
enclosingBlock, enclosingClass, enclosingCompilationUnit, enclosingMethod, isInSameNameScope, isInSameNameScope, visitExpression
-
-
-
-
Field Detail
-
formatter
protected JavaFormatter formatter
-
treeBuilder
protected TreeBuilder treeBuilder
-
-
Method Detail
-
visitStatement
public J visitStatement(Statement statement)
- Specified by:
visitStatement
in interfaceJavaSourceVisitor<J>
-
visitTypeName
public J visitTypeName(NameTree name)
- Specified by:
visitTypeName
in interfaceJavaSourceVisitor<J>
-
visitAnnotatedType
public J visitAnnotatedType(J.AnnotatedType annotatedType)
- Specified by:
visitAnnotatedType
in interfaceJavaSourceVisitor<J>
-
visitAnnotation
public J visitAnnotation(J.Annotation annotation)
- Specified by:
visitAnnotation
in interfaceJavaSourceVisitor<J>
-
visitArrayAccess
public J visitArrayAccess(J.ArrayAccess arrayAccess)
- Specified by:
visitArrayAccess
in interfaceJavaSourceVisitor<J>
-
visitArrayType
public J visitArrayType(J.ArrayType arrayType)
- Specified by:
visitArrayType
in interfaceJavaSourceVisitor<J>
-
visitAssert
public J visitAssert(J.Assert azzert)
- Specified by:
visitAssert
in interfaceJavaSourceVisitor<J>
-
visitAssign
public J visitAssign(J.Assign assign)
- Specified by:
visitAssign
in interfaceJavaSourceVisitor<J>
-
visitAssignOp
public J visitAssignOp(J.AssignOp assignOp)
- Specified by:
visitAssignOp
in interfaceJavaSourceVisitor<J>
-
visitBinary
public J visitBinary(J.Binary binary)
- Specified by:
visitBinary
in interfaceJavaSourceVisitor<J>
-
visitBlock
public J visitBlock(J.Block<J> block)
- Specified by:
visitBlock
in interfaceJavaSourceVisitor<J>
-
visitBreak
public J visitBreak(J.Break breakStatement)
- Specified by:
visitBreak
in interfaceJavaSourceVisitor<J>
-
visitCase
public J visitCase(J.Case caze)
- Specified by:
visitCase
in interfaceJavaSourceVisitor<J>
-
visitCatch
public J visitCatch(J.Try.Catch catzh)
- Specified by:
visitCatch
in interfaceJavaSourceVisitor<J>
-
visitClassDecl
public J visitClassDecl(J.ClassDecl classDecl)
- Specified by:
visitClassDecl
in interfaceJavaSourceVisitor<J>
-
visitCompilationUnit
public J visitCompilationUnit(J.CompilationUnit cu)
- Specified by:
visitCompilationUnit
in interfaceJavaSourceVisitor<J>
-
visitContinue
public J visitContinue(J.Continue continueStatement)
- Specified by:
visitContinue
in interfaceJavaSourceVisitor<J>
-
visitDoWhileLoop
public J visitDoWhileLoop(J.DoWhileLoop doWhileLoop)
- Specified by:
visitDoWhileLoop
in interfaceJavaSourceVisitor<J>
-
visitEmpty
public J visitEmpty(J.Empty empty)
- Specified by:
visitEmpty
in interfaceJavaSourceVisitor<J>
-
visitEnumValue
public J visitEnumValue(J.EnumValue enoom)
- Specified by:
visitEnumValue
in interfaceJavaSourceVisitor<J>
-
visitEnumValueSet
public J visitEnumValueSet(J.EnumValueSet enums)
- Specified by:
visitEnumValueSet
in interfaceJavaSourceVisitor<J>
-
visitFieldAccess
public J visitFieldAccess(J.FieldAccess fieldAccess)
- Specified by:
visitFieldAccess
in interfaceJavaSourceVisitor<J>
-
visitFinally
public J visitFinally(J.Try.Finally finallie)
- Specified by:
visitFinally
in interfaceJavaSourceVisitor<J>
-
visitForEachLoop
public J visitForEachLoop(J.ForEachLoop forLoop)
- Specified by:
visitForEachLoop
in interfaceJavaSourceVisitor<J>
-
visitForLoop
public J visitForLoop(J.ForLoop forLoop)
- Specified by:
visitForLoop
in interfaceJavaSourceVisitor<J>
-
visitIdentifier
public J visitIdentifier(J.Ident ident)
- Specified by:
visitIdentifier
in interfaceJavaSourceVisitor<J>
-
visitIf
public J visitIf(J.If iff)
- Specified by:
visitIf
in interfaceJavaSourceVisitor<J>
-
visitElse
public J visitElse(J.If.Else elze)
- Specified by:
visitElse
in interfaceJavaSourceVisitor<J>
-
visitImport
public J visitImport(J.Import impoort)
- Specified by:
visitImport
in interfaceJavaSourceVisitor<J>
-
visitInstanceOf
public J visitInstanceOf(J.InstanceOf instanceOf)
- Specified by:
visitInstanceOf
in interfaceJavaSourceVisitor<J>
-
visitLabel
public J visitLabel(J.Label label)
- Specified by:
visitLabel
in interfaceJavaSourceVisitor<J>
-
visitLambda
public J visitLambda(J.Lambda lambda)
- Specified by:
visitLambda
in interfaceJavaSourceVisitor<J>
-
visitLiteral
public J visitLiteral(J.Literal literal)
- Specified by:
visitLiteral
in interfaceJavaSourceVisitor<J>
-
visitMemberReference
public J visitMemberReference(J.MemberReference memberRef)
- Specified by:
visitMemberReference
in interfaceJavaSourceVisitor<J>
-
visitMethod
public J visitMethod(J.MethodDecl method)
- Specified by:
visitMethod
in interfaceJavaSourceVisitor<J>
-
visitMethodInvocation
public J visitMethodInvocation(J.MethodInvocation method)
- Specified by:
visitMethodInvocation
in interfaceJavaSourceVisitor<J>
-
visitMultiCatch
public J visitMultiCatch(J.MultiCatch multiCatch)
- Specified by:
visitMultiCatch
in interfaceJavaSourceVisitor<J>
-
visitMultiVariable
public J visitMultiVariable(J.VariableDecls multiVariable)
- Specified by:
visitMultiVariable
in interfaceJavaSourceVisitor<J>
-
visitNewArray
public J visitNewArray(J.NewArray newArray)
- Specified by:
visitNewArray
in interfaceJavaSourceVisitor<J>
-
visitNewClass
public J visitNewClass(J.NewClass newClass)
- Specified by:
visitNewClass
in interfaceJavaSourceVisitor<J>
-
visitPackage
public J visitPackage(J.Package pkg)
- Specified by:
visitPackage
in interfaceJavaSourceVisitor<J>
-
visitParameterizedType
public J visitParameterizedType(J.ParameterizedType type)
- Specified by:
visitParameterizedType
in interfaceJavaSourceVisitor<J>
-
visitParentheses
public <T extends J> J visitParentheses(J.Parentheses<T> parens)
- Specified by:
visitParentheses
in interfaceJavaSourceVisitor<J>
-
visitPrimitive
public J visitPrimitive(J.Primitive primitive)
- Specified by:
visitPrimitive
in interfaceJavaSourceVisitor<J>
-
visitReturn
public J visitReturn(J.Return retrn)
- Specified by:
visitReturn
in interfaceJavaSourceVisitor<J>
-
visitSwitch
public J visitSwitch(J.Switch switzh)
- Specified by:
visitSwitch
in interfaceJavaSourceVisitor<J>
-
visitSynchronized
public J visitSynchronized(J.Synchronized synch)
- Specified by:
visitSynchronized
in interfaceJavaSourceVisitor<J>
-
visitTernary
public J visitTernary(J.Ternary ternary)
- Specified by:
visitTernary
in interfaceJavaSourceVisitor<J>
-
visitThrow
public J visitThrow(J.Throw thrown)
- Specified by:
visitThrow
in interfaceJavaSourceVisitor<J>
-
visitTry
public J visitTry(J.Try tryable)
- Specified by:
visitTry
in interfaceJavaSourceVisitor<J>
-
visitTypeCast
public J visitTypeCast(J.TypeCast typeCast)
- Specified by:
visitTypeCast
in interfaceJavaSourceVisitor<J>
-
visitTypeParameter
public J visitTypeParameter(J.TypeParameter typeParam)
- Specified by:
visitTypeParameter
in interfaceJavaSourceVisitor<J>
-
visitTypeParameters
public J visitTypeParameters(J.TypeParameters typeParams)
- Specified by:
visitTypeParameters
in interfaceJavaSourceVisitor<J>
-
visitUnary
public J visitUnary(J.Unary unary)
- Specified by:
visitUnary
in interfaceJavaSourceVisitor<J>
-
visitUnparsedSource
public J visitUnparsedSource(J.UnparsedSource unparsed)
- Specified by:
visitUnparsedSource
in interfaceJavaSourceVisitor<J>
-
visitVariable
public J visitVariable(J.VariableDecls.NamedVar variable)
- Specified by:
visitVariable
in interfaceJavaSourceVisitor<J>
-
visitWhileLoop
public J visitWhileLoop(J.WhileLoop whileLoop)
- Specified by:
visitWhileLoop
in interfaceJavaSourceVisitor<J>
-
visitWildcard
public J visitWildcard(J.Wildcard wildcard)
- Specified by:
visitWildcard
in interfaceJavaSourceVisitor<J>
-
addImport
public void addImport(java.lang.String fullyQualifiedName)
This method will add an import to the compilation unit regardless if a reference to the type exists. It adds an additional visitor which means the "add import" is deferred and does not complete immediately. This operation is idempotent and calling this method multiple times with the same arguments will only add an import once.- Parameters:
fullyQualifiedName
- Fully-qualified name of the class.
-
addImport
public void addImport(java.lang.String fullyQualifiedName, java.lang.String staticMethod)
This method will add an import to the compilation unit regardless if a reference to the type/method exists. It adds an additional visitor which means the "add import" is deferred and does not complete immediately. This operation is idempotent and calling this method multiple times with the same arguments will only add an import once.- Parameters:
fullyQualifiedName
- Fully-qualified name of the class.staticMethod
- The static method to be imported. A wildcard "*" may also be used to statically import all methods.
-
maybeAddImport
public void maybeAddImport(@Nullable JavaType.FullyQualified clazz)
This method will add an import to the compilation unit if there is a reference to the type. It adds an additional visitor which means the "add import" is deferred and does not complete immediately. This operation is idempotent and calling this method multiple times with the same arguments will only add an import once.- Parameters:
clazz
- The class that will be imported into the compilation unit.
-
maybeAddImport
public void maybeAddImport(java.lang.String fullyQualifiedName)
This method will add an import to the compilation unit if there is a reference to the type. It adds an additional visitor which means the "add import" is deferred and does not complete immediately. This operation is idempotent and calling this method multiple times with the same arguments will only add an import once.- Parameters:
fullyQualifiedName
- Fully-qualified name of the class.
-
maybeAddImport
public void maybeAddImport(@NonNull java.lang.String fullyQualifiedName, @NonNull java.lang.String staticMethod)
This method will add a static import to the compilation unit if there is a reference to the type/method. It adds an additional visitor which means the "add import" is deferred and does not complete immediately. This operation is idempotent and calling this method multiple times with the same arguments will only add an import once.- Parameters:
fullyQualifiedName
- Fully-qualified name of the class.staticMethod
- The static method to be imported. A wildcard "*" may also be used to statically import all methods.
-
maybeRemoveImport
public void maybeRemoveImport(@Nullable JavaType.FullyQualified clazz)
-
maybeRemoveImport
public void maybeRemoveImport(java.lang.String fullyQualifiedName)
-
maybeUnwrapParentheses
public void maybeUnwrapParentheses(org.openrewrite.Cursor parensCursor)
-
-