Class AJavaparserMutator

java.lang.Object
eu.solven.cleanthat.engine.java.refactorer.AJavaparserMutator
All Implemented Interfaces:
IJavaparserMutator, IMutator, IMutatorExternalReferences, IWalkingMutator<com.github.javaparser.ast.Node,com.github.javaparser.ast.Node>
Direct Known Subclasses:
AJavaparserExprMutator, AJavaparserStmtMutator, ArraysDotStream, ATodoJavaParserMutator, AvoidInlineConditionals, AvoidUncheckedExceptionsInSignatures, ComparisonWithNaN, CreateTempFilesUsingNio, EmptyControlStatement, EnumsWithoutEquals, JUnit4ToJUnit5, LambdaIsMethodReference, LambdaReturnsSingleStatement, LiteralsFirstInComparisons, LocalVariableTypeInference, ModifierOrder, OptionalNotEmpty, StreamAnyMatch, StringToString, UnnecessaryBoxing, UnnecessaryFullyQualifiedName, UnnecessaryImport, UnnecessaryModifier, UseDiamondOperator, UseIndexOfChar, UseIsEmptyOnCollections, UseTextBlocks, UseUnderscoresInNumericLiterals

public abstract class AJavaparserMutator extends Object implements IJavaparserMutator, IMutatorExternalReferences
Enables common behavior to JavaParser-based rules
Author:
Benoit Lacelle
  • Constructor Details

    • AJavaparserMutator

      public AJavaparserMutator()
  • Method Details

    • getWarnCount

      @Deprecated public static int getWarnCount()
      Deprecated.
    • getThreadJavaParser

      protected final com.github.javaparser.symbolsolver.javaparsermodel.JavaParserFacade getThreadJavaParser()
    • walkAst

      public Optional<com.github.javaparser.ast.Node> walkAst(com.github.javaparser.ast.Node tree)
      Specified by:
      walkAst in interface IWalkingMutator<com.github.javaparser.ast.Node,com.github.javaparser.ast.Node>
    • messageForIssueReporting

      public static String messageForIssueReporting(IMutator mutator, com.github.javaparser.ast.Node node)
    • processNotRecursively

      protected boolean processNotRecursively(com.github.javaparser.ast.Node node)
    • tryReplace

      public boolean tryReplace(com.github.javaparser.ast.Node node, com.github.javaparser.ast.Node replacement)
    • replaceNode

      protected Optional<com.github.javaparser.ast.Node> replaceNode(com.github.javaparser.ast.Node node)
    • optResolvedType

      protected Optional<com.github.javaparser.resolution.types.ResolvedType> optResolvedType(com.github.javaparser.ast.expr.Expression expr)
    • optResolvedType

      protected Optional<com.github.javaparser.resolution.types.ResolvedType> optResolvedType(com.github.javaparser.ast.type.Type type)
    • optResolved

      protected Optional<com.github.javaparser.resolution.declarations.ResolvedDeclaration> optResolved(com.github.javaparser.ast.expr.Expression singleArgument)
    • onMethodName

      protected void onMethodName(com.github.javaparser.ast.Node node, String methodName, OnMethodName consumer)
    • scopeHasRequiredType

      protected boolean scopeHasRequiredType(Optional<com.github.javaparser.ast.expr.Expression> optScope, Class<?> requiredType)
    • scopeHasRequiredType

      protected boolean scopeHasRequiredType(Optional<com.github.javaparser.ast.expr.Expression> optScope, String requiredType)
    • isImported

      protected boolean isImported(com.github.javaparser.ast.CompilationUnit compilationUnit, String methodRefPackage, String qualifiedName)
      Parameters:
      compilationUnit -
      methodRefPackage -
      qualifiedName -
      Returns:
      true if the given qualifiedName (which may be a nested Class) in given package is already imported in given CompilationUnit
    • isImportable

      protected boolean isImportable(com.github.javaparser.ast.CompilationUnit compilationUnit, String qualifiedName)
      Parameters:
      compilationUnit -
      qualifiedName -
      Returns:
      true if the given qualifiedName (which may be a nested Class) in given package can be imported in given CompilationUnit without conflicting existing imports
    • getSimpleName

      protected String getSimpleName(String qualifiedName)