Package org.openrewrite.staticanalysis
Class HideUtilityClassConstructorVisitor<P>
java.lang.Object
org.openrewrite.TreeVisitor<org.openrewrite.java.tree.J,P>
org.openrewrite.java.JavaVisitor<P>
org.openrewrite.java.JavaIsoVisitor<P>
org.openrewrite.staticanalysis.HideUtilityClassConstructorVisitor<P>
@Incubating(since="7.0.0")
public class HideUtilityClassConstructorVisitor<P>
extends org.openrewrite.java.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.
-
Field Summary
Fields inherited from class org.openrewrite.java.JavaVisitor
javadocVisitor -
Constructor Summary
ConstructorsConstructorDescriptionHideUtilityClassConstructorVisitor(org.openrewrite.java.style.HideUtilityClassConstructorStyle style) -
Method Summary
Modifier and TypeMethodDescriptionorg.openrewrite.java.tree.J.ClassDeclarationvisitClassDeclaration(org.openrewrite.java.tree.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, visitForControl, visitForEachControl, visitForEachLoop, visitForLoop, visitIdentifier, visitIf, visitImport, visitInstanceOf, visitLabel, visitLambda, visitLiteral, visitMemberReference, visitMethodDeclaration, visitMethodInvocation, visitMultiCatch, visitNewArray, visitNewClass, visitPackage, visitParameterizedType, visitParentheses, visitPrimitive, visitReturn, visitStatement, visitSwitch, visitSwitchExpression, visitSynchronized, visitTernary, visitThrow, visitTry, visitTryResource, visitTypeCast, visitTypeParameter, visitUnary, visitUnknown, visitUnknownSource, visitVariable, visitVariableDeclarations, visitWhileLoop, visitWildcard, visitYieldMethods inherited from class org.openrewrite.java.JavaVisitor
autoFormat, autoFormat, autoFormat, getJavadocVisitor, getLanguage, isAcceptable, isInSameNameScope, isInSameNameScope, maybeAddImport, maybeAddImport, maybeAddImport, maybeAddImport, maybeAddImport, maybeAddImport, maybeAutoFormat, maybeAutoFormat, maybeAutoFormat, maybeRemoveImport, maybeRemoveImport, service, visitContainer, visitLeftPadded, visitParenthesizedTypeTree, visitRightPadded, visitSpace, visitType, visitTypeNameMethods inherited from class org.openrewrite.TreeVisitor
adapt, collect, collect, defaultValue, doAfterVisit, getAfterVisit, getCursor, isAdaptableTo, noop, postVisit, preVisit, reduce, reduce, reduce, setCursor, stopAfterPreVisit, updateCursor, visit, visit, visit, visitAndCast, visitAndCast, visitMarker, visitMarkers, visitNonNull, visitNonNull, visitorTreeType
-
Constructor Details
-
HideUtilityClassConstructorVisitor
public HideUtilityClassConstructorVisitor(org.openrewrite.java.style.HideUtilityClassConstructorStyle style)
-
-
Method Details