Search in sources :

Example 6 with ASTRewrite

use of org.autorefactor.jdt.core.dom.ASTRewrite in project AutoRefactor by JnRouvignac.

the class BooleanEqualsRatherThanNullCheckCleanUp method replaceNullCheck.

private void replaceNullCheck(final InfixExpression visited, final Expression firstExpression, final boolean isNullCheck, final boolean isAndExpression, final boolean isPositiveExpression) {
    ASTRewrite rewrite = cuRewrite.getASTRewrite();
    ASTNodeFactory ast = cuRewrite.getASTBuilder();
    TextEditGroup group = new TextEditGroup(MultiFixMessages.BooleanEqualsRatherThanNullCheckCleanUp_description);
    // $NON-NLS-1$ //$NON-NLS-2$
    Name booleanConstant = ASTNodeFactory.newName(ast, Boolean.class.getSimpleName(), isAndExpression == isPositiveExpression ? "TRUE" : "FALSE");
    MethodInvocation equalsMethod = ast.newMethodInvocation();
    equalsMethod.setExpression(booleanConstant);
    // $NON-NLS-1$
    equalsMethod.setName(ast.newSimpleName("equals"));
    equalsMethod.arguments().add(ASTNodes.createMoveTarget(rewrite, ASTNodes.getUnparenthesedExpression(firstExpression)));
    Expression newExpression;
    if (!isNullCheck || isAndExpression) {
        newExpression = equalsMethod;
    } else {
        newExpression = ast.not(equalsMethod);
    }
    rewrite.replace(visited, newExpression, group);
}
Also used : Expression(org.eclipse.jdt.core.dom.Expression) InfixExpression(org.eclipse.jdt.core.dom.InfixExpression) PrefixExpression(org.eclipse.jdt.core.dom.PrefixExpression) ASTNodeFactory(org.autorefactor.jdt.internal.corext.dom.ASTNodeFactory) ASTRewrite(org.autorefactor.jdt.core.dom.ASTRewrite) MethodInvocation(org.eclipse.jdt.core.dom.MethodInvocation) TextEditGroup(org.eclipse.text.edits.TextEditGroup) Name(org.eclipse.jdt.core.dom.Name)

Example 7 with ASTRewrite

use of org.autorefactor.jdt.core.dom.ASTRewrite in project AutoRefactor by JnRouvignac.

the class CommentsCleanUp method visit.

@Override
public boolean visit(final LineComment visited) {
    ASTRewrite rewrite = cuRewrite.getASTRewrite();
    TextEditGroup group = new TextEditGroup(MultiFixMessages.CommentsCleanUp_description);
    String comment = getComment(visited);
    if (EMPTY_LINE_COMMENT.matcher(comment).matches() || ECLIPSE_GENERATED_TODOS.matcher(comment).matches()) {
        rewrite.remove(visited, group);
        return false;
    }
    if (!TOOLS_CONTROL_INSTRUCTIONS.matcher(comment).matches() && !ECLIPSE_IGNORE_NON_EXTERNALIZED_STRINGS.matcher(comment).matches()) {
        ASTNode nextNode = getNextNode(visited);
        ASTNode previousNode = getPreviousSibling(nextNode);
        if (previousNode != null && isSameLineNumber(visited, previousNode)) {
            rewrite.toJavadoc(visited, previousNode);
            return false;
        }
        if (acceptJavadoc(nextNode) && !betterCommentExist(visited, nextNode)) {
            rewrite.toJavadoc(visited, nextNode);
            return false;
        }
    }
    return true;
}
Also used : ASTNode(org.eclipse.jdt.core.dom.ASTNode) ASTRewrite(org.autorefactor.jdt.core.dom.ASTRewrite) TextEditGroup(org.eclipse.text.edits.TextEditGroup)

Example 8 with ASTRewrite

use of org.autorefactor.jdt.core.dom.ASTRewrite in project AutoRefactor by JnRouvignac.

the class CommentsCleanUp method visit.

@Override
public boolean visit(final BlockComment visited) {
    ASTRewrite rewrite = cuRewrite.getASTRewrite();
    TextEditGroup group = new TextEditGroup(MultiFixMessages.CommentsCleanUp_description);
    String comment = getComment(visited);
    if (EMPTY_BLOCK_COMMENT.matcher(comment).matches()) {
        rewrite.remove(visited, group);
        return false;
    }
    ASTNode nextNode = getNextNode(visited);
    if (acceptJavadoc(nextNode) && !betterCommentExist(visited, nextNode)) {
        if (ECLIPSE_GENERATED_NON_JAVADOC.matcher(comment).find()) {
            rewrite.remove(visited, group);
        } else {
            rewrite.toJavadoc(visited);
        }
        return false;
    }
    Matcher emptyLineAtStartMatcher = EMPTY_LINE_AT_START_OF_BLOCK_COMMENT.matcher(comment);
    if (emptyLineAtStartMatcher.find()) {
        replaceEmptyLineAtStartOfComment(visited, emptyLineAtStartMatcher);
        return false;
    }
    Matcher emptyLineAtEndMatcher = EMPTY_LINE_AT_END_OF_BLOCK_COMMENT.matcher(comment);
    if (emptyLineAtEndMatcher.find()) {
        replaceEmptyLineAtEndOfComment(visited, emptyLineAtEndMatcher);
        return false;
    }
    String replacement = getReplacement(comment, false);
    if (replacement != null && !replacement.equals(comment)) {
        rewrite.replace(visited, replacement);
        return false;
    }
    return true;
}
Also used : Matcher(java.util.regex.Matcher) ASTNode(org.eclipse.jdt.core.dom.ASTNode) ASTRewrite(org.autorefactor.jdt.core.dom.ASTRewrite) TextEditGroup(org.eclipse.text.edits.TextEditGroup)

Example 9 with ASTRewrite

use of org.autorefactor.jdt.core.dom.ASTRewrite in project AutoRefactor by JnRouvignac.

the class ContainsAllRatherThanLoopCleanUp method newMethod.

@Override
protected Expression newMethod(final Expression iterable, final Expression toFind, final boolean isPositive, final Set<String> classesToUseWithImport, final Set<String> importsToAdd) {
    ASTRewrite rewrite = cuRewrite.getASTRewrite();
    ASTNodeFactory ast = cuRewrite.getASTBuilder();
    MethodInvocation invoke = ast.newMethodInvocation();
    invoke.setExpression(ASTNodes.createMoveTarget(rewrite, toFind));
    // $NON-NLS-1$
    invoke.setName(ast.newSimpleName("containsAll"));
    invoke.arguments().add(ASTNodes.createMoveTarget(rewrite, ASTNodes.getUnparenthesedExpression(iterable)));
    if (isPositive) {
        return ast.not(invoke);
    }
    return invoke;
}
Also used : ASTNodeFactory(org.autorefactor.jdt.internal.corext.dom.ASTNodeFactory) ASTRewrite(org.autorefactor.jdt.core.dom.ASTRewrite) MethodInvocation(org.eclipse.jdt.core.dom.MethodInvocation)

Example 10 with ASTRewrite

use of org.autorefactor.jdt.core.dom.ASTRewrite in project AutoRefactor by JnRouvignac.

the class DoWhileRatherThanDuplicateCodeCleanUp method replaceWithDoWhile.

private void replaceWithDoWhile(final WhileStatement visited, final List<Statement> previousStatements) {
    ASTRewrite rewrite = cuRewrite.getASTRewrite();
    TextEditGroup group = new TextEditGroup(MultiFixMessages.DoWhileRatherThanDuplicateCodeCleanUp_description);
    rewrite.remove(previousStatements, group);
    ASTNodeFactory ast = cuRewrite.getASTBuilder();
    ASTNodes.replaceButKeepComment(rewrite, visited, ast.newDoStatement(ASTNodes.createMoveTarget(rewrite, ASTNodes.getUnparenthesedExpression(visited.getExpression())), ASTNodes.createMoveTarget(rewrite, visited.getBody())), group);
}
Also used : ASTNodeFactory(org.autorefactor.jdt.internal.corext.dom.ASTNodeFactory) ASTRewrite(org.autorefactor.jdt.core.dom.ASTRewrite) TextEditGroup(org.eclipse.text.edits.TextEditGroup)

Aggregations

ASTRewrite (org.autorefactor.jdt.core.dom.ASTRewrite)195 TextEditGroup (org.eclipse.text.edits.TextEditGroup)167 ASTNodeFactory (org.autorefactor.jdt.internal.corext.dom.ASTNodeFactory)133 Expression (org.eclipse.jdt.core.dom.Expression)56 MethodInvocation (org.eclipse.jdt.core.dom.MethodInvocation)48 InfixExpression (org.eclipse.jdt.core.dom.InfixExpression)42 Statement (org.eclipse.jdt.core.dom.Statement)24 ArrayList (java.util.ArrayList)22 IfStatement (org.eclipse.jdt.core.dom.IfStatement)20 Block (org.eclipse.jdt.core.dom.Block)15 PrefixExpression (org.eclipse.jdt.core.dom.PrefixExpression)14 ASTNode (org.eclipse.jdt.core.dom.ASTNode)11 IExtendedModifier (org.eclipse.jdt.core.dom.IExtendedModifier)11 ITypeBinding (org.eclipse.jdt.core.dom.ITypeBinding)11 Modifier (org.eclipse.jdt.core.dom.Modifier)11 Type (org.eclipse.jdt.core.dom.Type)11 List (java.util.List)10 VariableDeclarationStatement (org.eclipse.jdt.core.dom.VariableDeclarationStatement)9 CastExpression (org.eclipse.jdt.core.dom.CastExpression)7 LambdaExpression (org.eclipse.jdt.core.dom.LambdaExpression)7