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 AnnotationMatcher to 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

    Constructors
    Constructor
    Description
    HideUtilityClassConstructorVisitor(org.openrewrite.java.style.HideUtilityClassConstructorStyle style)
     
  • Method Summary

    Modifier and Type
    Method
    Description
    org.openrewrite.java.tree.J.ClassDeclaration
    visitClassDeclaration(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, visitIntersectionType, visitLabel, visitLambda, visitLiteral, visitMemberReference, visitMethodDeclaration, visitMethodInvocation, visitModifier, visitMultiCatch, visitNewArray, visitNewClass, visitNullableType, visitPackage, visitParameterizedType, visitParentheses, visitPrimitive, visitReturn, visitStatement, visitSwitch, visitSwitchExpression, visitSynchronized, visitTernary, visitThrow, visitTry, visitTryResource, visitTypeCast, visitTypeParameter, visitUnary, visitUnknown, visitUnknownSource, visitVariable, visitVariableDeclarations, visitWhileLoop, visitWildcard, visitYield

    Methods 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, visitTypeName

    Methods 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

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • HideUtilityClassConstructorVisitor

      public HideUtilityClassConstructorVisitor(org.openrewrite.java.style.HideUtilityClassConstructorStyle style)
  • Method Details

    • visitClassDeclaration

      public org.openrewrite.java.tree.J.ClassDeclaration visitClassDeclaration(org.openrewrite.java.tree.J.ClassDeclaration classDecl, P p)
      Overrides:
      visitClassDeclaration in class org.openrewrite.java.JavaIsoVisitor<P>