All Implemented Interfaces:
ICountMutatorIssues, IJavaparserAstMutator, IJavaparserNodeMutator, IMutator, IMutatorExternalReferences, IWalkingMutator<com.github.javaparser.ast.Node,com.github.javaparser.ast.Node>
Direct Known Subclasses:
UseCollectionIsEmpty, UseStringIsEmpty

public abstract class AUseXIsEmpty extends AJavaparserExprMutator
Migrate from 'm.size() == 0’ to ’m.isEmpty()'. Works with Collection, Map and String.
Author:
Benoit Lacelle
  • Constructor Details

    • AUseXIsEmpty

      public AUseXIsEmpty()
  • Method Details

    • getSizeMethod

      protected abstract String getSizeMethod()
    • getCompatibleTypes

      protected abstract Set<Class<?>> getCompatibleTypes()
    • processExpression

      protected boolean processExpression(NodeAndSymbolSolver<com.github.javaparser.ast.expr.Expression> expr)
      Overrides:
      processExpression in class AJavaparserExprMutator
    • checkCallSizeAndCompareWith0

      protected Optional<com.github.javaparser.ast.expr.Expression> checkCallSizeAndCompareWith0(String methodName, NodeAndSymbolSolver<com.github.javaparser.ast.expr.Expression> expr)
    • checkTypeAndProcess

      protected boolean checkTypeAndProcess(com.github.javaparser.ast.Node node, com.github.javaparser.ast.expr.Expression lengthScope, com.github.javaparser.resolution.types.ResolvedType type)