Example usage for org.eclipse.jdt.core.dom.rewrite ASTRewrite remove

List of usage examples for org.eclipse.jdt.core.dom.rewrite ASTRewrite remove

Introduction

In this page you can find the example usage for org.eclipse.jdt.core.dom.rewrite ASTRewrite remove.

Prototype

public final void remove(ASTNode node, TextEditGroup editGroup) 

Source Link

Document

Removes the given node from its parent in this rewriter.

Usage

From source file:com.google.currysrc.processors.RemoveJavaDocTags.java

License:Apache License

@Override
protected void visit(Reporter reporter, Javadoc javadoc, ASTRewrite rewrite) {
    for (TagElement tagElement : (List<TagElement>) javadoc.tags()) {
        String tagName = tagElement.getTagName();
        if (tagName == null) {
            continue;
        }/*from w ww .  j a v  a2 s .c o  m*/
        if (tagsToRemove.contains(tagName.toLowerCase())) {
            rewrite.remove(tagElement, null /* editGroup */);
        }
    }
}

From source file:com.google.gdt.eclipse.appengine.rpc.markers.quickfixes.DeleteServiceMethodAnnotationProposal.java

License:Open Source License

@Override
protected ASTRewrite getRewrite() throws CoreException {
    CompilationUnit targetAstRoot = ASTResolving.createQuickFixAST(getCompilationUnit(), null);
    createImportRewrite(targetAstRoot);/* w  w  w .j a v  a2s.  c  o m*/

    ASTRewrite rewrite = ASTRewrite.create(targetAstRoot.getAST());

    // Find the method declaration in the AST we just generated (the one that
    // the AST rewriter is hooked up to).
    MethodDeclaration rewriterAstMethodDecl = JavaASTUtils.findMethodDeclaration(targetAstRoot,
            serviceMethod.resolveBinding().getKey());
    if (rewriterAstMethodDecl == null) {
        return null;
    }

    ASTNode annotationNode = null;
    List<IExtendedModifier> modifiers = rewriterAstMethodDecl.modifiers();
    for (IExtendedModifier modifier : modifiers) {
        if (modifier.isAnnotation()) {
            String name = ((Annotation) modifier).getTypeName().toString();
            if (name.equals("ServiceMethod")) { //$NON-NLS-N$
                annotationNode = (ASTNode) modifier;
                break;
            }
        }
    }

    if (annotationNode != null) {
        rewrite.remove(annotationNode, null);
    }
    return rewrite;
}

From source file:com.google.gwt.eclipse.core.markers.quickfixes.DeleteMethodProposal.java

License:Open Source License

@Override
protected ASTRewrite getRewrite() throws CoreException {
    CompilationUnit targetAstRoot = ASTResolving.createQuickFixAST(getCompilationUnit(), null);
    createImportRewrite(targetAstRoot);// www.  ja v a  2 s. c o m

    ASTRewrite rewrite = ASTRewrite.create(targetAstRoot.getAST());

    // Find the method declaration in the AST we just generated (the one that
    // the AST rewriter is hooked up to).
    MethodDeclaration rewriterAstMethodDecl = JavaASTUtils.findMethodDeclaration(targetAstRoot,
            methodDecl.resolveBinding().getKey());
    if (rewriterAstMethodDecl == null) {
        return null;
    }

    // Remove the extra method declaration
    rewrite.remove(rewriterAstMethodDecl, null);

    return rewrite;
}

From source file:edu.umd.cs.findbugs.plugin.eclipse.quickfix.RemoveUselessMethodResolution.java

License:Open Source License

@Override
protected void repairBug(ASTRewrite rewrite, CompilationUnit workingUnit, BugInstance bug)
        throws BugResolutionException {
    Assert.isNotNull(rewrite);//w  ww  . j  a v a 2s .com
    Assert.isNotNull(workingUnit);
    Assert.isNotNull(bug);

    TypeDeclaration type = getTypeDeclaration(workingUnit, bug.getPrimaryClass());
    MethodDeclaration method = getMethodDeclaration(type, bug.getPrimaryMethod());
    rewrite.remove(method, null);
}

From source file:edu.umd.cs.findbugs.plugin.eclipse.quickfix.RemoveUselessStatementResolution.java

License:Open Source License

@Override
protected void repairBug(ASTRewrite rewrite, CompilationUnit workingUnit, BugInstance bug)
        throws BugResolutionException {
    Assert.isNotNull(rewrite);/*  ww w . j  a v a2s. c o  m*/
    Assert.isNotNull(workingUnit);
    Assert.isNotNull(bug);

    Statement statement = findUselessStatement(getASTNode(workingUnit, bug.getPrimarySourceLineAnnotation()));
    rewrite.remove(statement, null);
}

From source file:edu.umd.cs.findbugs.quickfix.resolution.RemoveUselessMethodResolution.java

License:Open Source License

@Override
protected void repairBug(ASTRewrite rewrite, CompilationUnit workingUnit, BugInstance bug)
        throws BugResolutionException {
    assert rewrite != null;
    assert workingUnit != null;
    assert bug != null;

    TypeDeclaration type = getTypeDeclaration(workingUnit, bug.getPrimaryClass());
    MethodDeclaration method = getMethodDeclaration(type, bug.getPrimaryMethod());
    rewrite.remove(method, null);
}

From source file:edu.umd.cs.findbugs.quickfix.resolution.RemoveUselessStatementResolution.java

License:Open Source License

@Override
protected void repairBug(ASTRewrite rewrite, CompilationUnit workingUnit, BugInstance bug)
        throws BugResolutionException {
    assert rewrite != null;
    assert workingUnit != null;
    assert bug != null;

    Statement statement = findUselessStatement(getASTNode(workingUnit, bug.getPrimarySourceLineAnnotation()));
    rewrite.remove(statement, null);
}

From source file:net.atos.optimus.m2t.merger.java.core.JavaCodeMerger.java

License:Open Source License

/**
 * Merge javadoc comment from existingFragment and generatedFragment to an
 * AST Rewrite object instance. This method is call only when
 * {@code existingFragment} is marked as generated and
 * {@code generatedFragment} exist./*from   ww  w.  j a v a  2 s.co m*/
 * 
 * @param existingFragment
 *            The existing fragment
 * @param generatedFragment
 *            The generated fragment
 * @param astr
 *            The ASTRewrite object instance containing the merge result
 */
protected void mergeJavadoc(BodyDeclaration existingFragment, BodyDeclaration generatedFragment,
        ASTRewrite astr) {
    boolean existingCommentIsGenerated = false;
    boolean generatedCommentIsGenerated = false;
    boolean existingCommentFound = true;
    boolean generatedCommentFound = true;

    try {
        existingCommentIsGenerated = isJavadocCommentGenerated(existingFragment.getJavadoc());
    } catch (IllegalArgumentException iae) {
        existingCommentFound = false;
    }

    try {
        generatedCommentIsGenerated = isJavadocCommentGenerated(generatedFragment.getJavadoc());
    } catch (IllegalArgumentException iae) {
        generatedCommentFound = false;
    }

    if (existingCommentIsGenerated) {
        if (!generatedCommentFound) {
            if (MergerLogger.enabled())
                MergerLogger.log(MergerLoggerMessages.MERGER_REMOVE_JAVADOC.value(
                        JavaCodeHelper.getName(existingFragment),
                        JavaCodeHelper.getDescription(existingFragment)));

            astr.remove(existingFragment.getJavadoc(), null);
        } else if (generatedCommentIsGenerated) {
            if (MergerLogger.enabled())
                MergerLogger.log(MergerLoggerMessages.MERGER_REPLACE_JAVADOC.value(
                        JavaCodeHelper.getName(existingFragment), JavaCodeHelper.getName(generatedFragment)));

            astr.replace(existingFragment.getJavadoc(), generatedFragment.getJavadoc(), null);
        }
    } else if (!existingCommentFound && generatedCommentIsGenerated) {
        if (MergerLogger.enabled())
            MergerLogger.log(
                    MergerLoggerMessages.MERGER_ADD_JAVADOC.value(JavaCodeHelper.getName(existingFragment)));
        astr.set(existingFragment, existingFragment.getJavadocProperty(), generatedFragment.getJavadoc(), null);
    }
}

From source file:nz.ac.massey.cs.care.refactoring.executers.IntroduceFactoryRefactoring.java

License:Open Source License

/**
 * Updates the constructor call.//  w ww  .  j ava2 s  .c  om
 *
 * @param ctorCall the ClassInstanceCreation to be marked as replaced
 * @param unitRewriter the AST rewriter
 * @param gd the edit group to use
 */
private void rewriteFactoryMethodCall(ClassInstanceCreation ctorCall, ASTRewrite unitRewriter,
        TextEditGroup gd) {
    AST ast = unitRewriter.getAST();
    MethodInvocation factoryMethodCall = ast.newMethodInvocation();

    ASTNode ctorCallParent = ctorCall.getParent();
    StructuralPropertyDescriptor ctorCallLocation = ctorCall.getLocationInParent();
    if (ctorCallLocation instanceof ChildListPropertyDescriptor) {
        ListRewrite ctorCallParentListRewrite = unitRewriter.getListRewrite(ctorCallParent,
                (ChildListPropertyDescriptor) ctorCallLocation);
        int index = ctorCallParentListRewrite.getOriginalList().indexOf(ctorCall);
        ctorCall = (ClassInstanceCreation) ctorCallParentListRewrite.getRewrittenList().get(index);
    } else {
        ctorCall = (ClassInstanceCreation) unitRewriter.get(ctorCallParent, ctorCallLocation);
    }

    ListRewrite actualFactoryArgs = unitRewriter.getListRewrite(factoryMethodCall,
            MethodInvocation.ARGUMENTS_PROPERTY);
    ListRewrite actualCtorArgs = unitRewriter.getListRewrite(ctorCall,
            ClassInstanceCreation.ARGUMENTS_PROPERTY);

    // Need to use a qualified name for the factory method if we're not
    // in the context of the class holding the factory.
    AbstractTypeDeclaration callOwner = (AbstractTypeDeclaration) ASTNodes.getParent(ctorCall,
            AbstractTypeDeclaration.class);
    ITypeBinding callOwnerBinding = callOwner.resolveBinding();

    if (callOwnerBinding == null
            || !Bindings.equals(callOwner.resolveBinding(), fFactoryOwningClass.resolveBinding())) {
        String qualifier = fImportRewriter.addImport(fFactoryOwningClass.resolveBinding());
        factoryMethodCall.setExpression(ASTNodeFactory.newName(ast, qualifier));
    }

    factoryMethodCall.setName(ast.newSimpleName(fNewMethodName));

    List<Expression> actualCtorArgsList = actualCtorArgs.getRewrittenList();
    for (int i = 0; i < actualCtorArgsList.size(); i++) {
        Expression actualCtorArg = actualCtorArgsList.get(i);

        ASTNode movedArg;
        if (ASTNodes.isExistingNode(actualCtorArg)) {
            movedArg = unitRewriter.createMoveTarget(actualCtorArg);
        } else {
            unitRewriter.remove(actualCtorArg, null);
            movedArg = actualCtorArg;
        }

        actualFactoryArgs.insertLast(movedArg, gd);
    }

    unitRewriter.replace(ctorCall, factoryMethodCall, gd);
}

From source file:org.eclipse.ajdt.internal.ui.editor.quickfix.UnresolvedElementsSubProcessor.java

License:Open Source License

private static void addNewVariableProposals(ICompilationUnit cu, Name node, SimpleName simpleName,
        Collection proposals) {/*ww  w .j  av  a  2 s .c  o m*/
    String name = simpleName.getIdentifier();
    BodyDeclaration bodyDeclaration = ASTResolving.findParentBodyDeclaration(node, true);
    int type = bodyDeclaration.getNodeType();
    if (type == ASTNode.METHOD_DECLARATION) {
        int relevance = StubUtility.hasParameterName(cu.getJavaProject(), name) ? 8 : 5;
        String label = Messages.format(
                CorrectionMessages.UnresolvedElementsSubProcessor_createparameter_description,
                simpleName.getIdentifier());
        Image image = JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_LOCAL);
        proposals.add(new NewVariableCorrectionProposal(label, cu, NewVariableCorrectionProposal.PARAM,
                simpleName, null, relevance, image));
    }
    if (type == ASTNode.INITIALIZER || (type == ASTNode.METHOD_DECLARATION
            && !ASTResolving.isInsideConstructorInvocation((MethodDeclaration) bodyDeclaration, node))) {
        int relevance = StubUtility.hasLocalVariableName(cu.getJavaProject(), name) ? 10 : 7;
        String label = Messages.format(
                CorrectionMessages.UnresolvedElementsSubProcessor_createlocal_description,
                simpleName.getIdentifier());
        Image image = JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_LOCAL);
        proposals.add(new NewVariableCorrectionProposal(label, cu, NewVariableCorrectionProposal.LOCAL,
                simpleName, null, relevance, image));
    }

    if (node.getParent().getNodeType() == ASTNode.ASSIGNMENT) {
        Assignment assignment = (Assignment) node.getParent();
        if (assignment.getLeftHandSide() == node
                && assignment.getParent().getNodeType() == ASTNode.EXPRESSION_STATEMENT) {
            ASTNode statement = assignment.getParent();
            ASTRewrite rewrite = ASTRewrite.create(statement.getAST());
            if (ASTNodes.isControlStatementBody(assignment.getParent().getLocationInParent())) {
                rewrite.replace(statement, rewrite.getAST().newBlock(), null);
            } else {
                rewrite.remove(statement, null);
            }
            String label = CorrectionMessages.UnresolvedElementsSubProcessor_removestatement_description;
            Image image = JavaPlugin.getDefault().getWorkbench().getSharedImages()
                    .getImage(ISharedImages.IMG_TOOL_DELETE);
            ASTRewriteCorrectionProposal proposal = new ASTRewriteCorrectionProposal(label, cu, rewrite, 4,
                    image);
            proposals.add(proposal);
        }
    }
}