Package org.openrewrite.java.cleanup
Class HideUtilityClassConstructorVisitor<P>
- java.lang.Object
-
- org.openrewrite.TreeVisitor<J,P>
-
- org.openrewrite.java.JavaVisitor<P>
-
- org.openrewrite.java.JavaIsoVisitor<P>
-
- org.openrewrite.java.cleanup.HideUtilityClassConstructorVisitor<P>
-
@Incubating(since="7.0.0") public class HideUtilityClassConstructorVisitor<P> extends JavaIsoVisitor<P>
HideUtilityClassConstructorVisitor will perform the following operations on a Utility Class:- Change any Public constructors to Private
- Change any Package-Private ("Default", no modifiers) to Private
- If the Implicit Default Constructor is used (as in, no explicit constructors defined), add a Private constructor
HideUtilityClassConstructorVisitor will NOT perform operations on a Utility Class under these circumstances:
- Will NOT change any Protected constructors to Private
-
HideUtilityClassConstructorVisitor will ignore classes with a Main method signature (
public static void main(String[] args). This prevents HideUtilityClassConstructorVisitor from generating a Private constructor on classes which only serve as application entry points, though they are technically a Utility Class. -
HideUtilityClassConstructorVisitor can be configured with a list of fully-qualified "ignorable Annotations" strings.
These are used with
AnnotationMatcherto check for the presence of annotations on the class. HideUtilityClassConstructorVisitor will ignore classes which have any of the configured Annotations. This is valuable for situations such as Lombok Utility classes, which generate Private constructors in bytecode.
-
-
Constructor Summary
Constructors Constructor Description HideUtilityClassConstructorVisitor(HideUtilityClassConstructorStyle style)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description J.ClassDeclarationvisitClassDeclaration(J.ClassDeclaration classDecl, P p)-
Methods inherited from class org.openrewrite.java.JavaIsoVisitor
visitAnnotatedType, visitAnnotation, visitArrayAccess, visitArrayDimension, visitArrayType, visitAssert, visitAssignment, visitAssignmentOperation, visitBinary, visitBlock, visitBreak, visitCase, visitCatch, visitCompilationUnit, visitContinue, visitControlParentheses, visitDoWhileLoop, visitElse, visitEmpty, visitEnumValue, visitEnumValueSet, visitExpression, visitFieldAccess, visitForEachLoop, visitForLoop, visitIdentifier, visitIf, visitImport, visitInstanceOf, visitJavaSourceFile, visitLabel, visitLambda, visitLiteral, visitMemberReference, visitMethodDeclaration, visitMethodInvocation, visitMultiCatch, visitNewArray, visitNewClass, visitPackage, visitParameterizedType, visitParentheses, visitPrimitive, visitReturn, visitStatement, visitSwitch, visitSynchronized, visitTernary, visitThrow, visitTry, visitTryResource, visitTypeCast, visitTypeParameter, visitUnary, visitVariable, visitVariableDeclarations, visitWhileLoop, visitWildcard
-
Methods inherited from class org.openrewrite.java.JavaVisitor
autoFormat, autoFormat, autoFormat, getJavadocVisitor, getLanguage, isAcceptable, isInSameNameScope, isInSameNameScope, maybeAddImport, maybeAddImport, maybeAddImport, maybeAutoFormat, maybeAutoFormat, maybeAutoFormat, maybeRemoveImport, maybeRemoveImport, visitContainer, visitForControl, visitForEachControl, visitLeftPadded, visitRightPadded, visitSpace, visitType, visitTypeName
-
-
-
-
Constructor Detail
-
HideUtilityClassConstructorVisitor
public HideUtilityClassConstructorVisitor(HideUtilityClassConstructorStyle style)
-
-
Method Detail
-
visitClassDeclaration
public J.ClassDeclaration visitClassDeclaration(J.ClassDeclaration classDecl, P p)
- Overrides:
visitClassDeclarationin classJavaIsoVisitor<P>
-
-