private static boolean hasSideEffect(SimpleName reference) { ASTNode parent = reference.getParent(); while (parent instanceof QualifiedName) { parent = parent.getParent(); } if (parent instanceof FieldAccess) { parent = parent.getParent(); } ASTNode node = null; int nameParentType = parent.getNodeType(); if (nameParentType == ASTNode.ASSIGNMENT) { Assignment assignment = (Assignment) parent; node = assignment.getRightHandSide(); } else if (nameParentType == ASTNode.SINGLE_VARIABLE_DECLARATION) { SingleVariableDeclaration decl = (SingleVariableDeclaration) parent; node = decl.getInitializer(); if (node == null) return false; } else if (nameParentType == ASTNode.VARIABLE_DECLARATION_FRAGMENT) { node = parent; } else { return false; } ArrayList<Expression> sideEffects = new ArrayList<Expression>(); node.accept(new SideEffectFinder(sideEffects)); return sideEffects.size() > 0; }
private void removeParamTag( ASTRewrite rewrite, SingleVariableDeclaration varDecl, TextEditGroup group) { if (varDecl.getParent() instanceof MethodDeclaration) { Javadoc javadoc = ((MethodDeclaration) varDecl.getParent()).getJavadoc(); if (javadoc != null) { TagElement tagElement = JavadocTagsSubProcessor.findParamTag(javadoc, varDecl.getName().getIdentifier()); if (tagElement != null) { rewrite.remove(tagElement, group); } } } }