private void updateSimpleName(ASTRewrite rewriter, ParameterInfo pi, SimpleName node, List enclosingParameters) { AST ast= rewriter.getAST(); IBinding binding= node.resolveBinding(); Expression replacementNode= fParameterObjectFactory.createFieldReadAccess(pi, getParameterName(), ast); if (binding instanceof IVariableBinding) { IVariableBinding variable= (IVariableBinding) binding; if (variable.isParameter() && variable.getName().equals(getNameInScope(pi, enclosingParameters))) { rewriter.replace(node, replacementNode, null); } } else { ASTNode parent= node.getParent(); if (! (parent instanceof QualifiedName || parent instanceof FieldAccess || parent instanceof SuperFieldAccess)) { if (node.getIdentifier().equals(getNameInScope(pi, enclosingParameters))) { rewriter.replace(node, replacementNode, null); } } } }
private void updateSimpleName(ASTRewrite rewriter, ParameterInfo pi, SimpleName node, List<SingleVariableDeclaration> enclosingParameters, IJavaProject project) { AST ast= rewriter.getAST(); IBinding binding= node.resolveBinding(); Expression replacementNode= fParameterObjectFactory.createFieldReadAccess(pi, getParameterName(), ast, project, false, null); if (binding instanceof IVariableBinding) { IVariableBinding variable= (IVariableBinding) binding; if (variable.isParameter() && variable.getName().equals(getNameInScope(pi, enclosingParameters))) { rewriter.replace(node, replacementNode, null); } } else { ASTNode parent= node.getParent(); if (!(parent instanceof QualifiedName || parent instanceof FieldAccess || parent instanceof SuperFieldAccess)) { if (node.getIdentifier().equals(getNameInScope(pi, enclosingParameters))) { rewriter.replace(node, replacementNode, null); } } } }
private void updateSimpleName(ASTRewrite rewriter, ParameterInfo pi, SimpleName node, List<SingleVariableDeclaration> enclosingParameters, IJavaProject project) { AST ast= rewriter.getAST(); IBinding binding= node.resolveBinding(); Expression replacementNode= fParameterObjectFactory.createFieldReadAccess(pi, getParameterName(), ast, project, false, null); if (binding instanceof IVariableBinding) { IVariableBinding variable= (IVariableBinding) binding; if (variable.isParameter() && variable.getName().equals(getNameInScope(pi, enclosingParameters))) { rewriter.replace(node, replacementNode, null); } } else { ASTNode parent= node.getParent(); if (!(parent instanceof QualifiedName || parent instanceof FieldAccess || parent instanceof SuperFieldAccess)) { if (node.getIdentifier().equals(getNameInScope(pi, enclosingParameters))) { rewriter.replace(node, replacementNode, null); } } } }
private Expression handleSimpleNameAssignment(ASTNode replaceNode, ParameterObjectFactory pof, String parameterName, AST ast, IJavaProject javaProject, boolean useSuper) { if (replaceNode instanceof Assignment) { Assignment assignment= (Assignment) replaceNode; Expression rightHandSide= assignment.getRightHandSide(); if (rightHandSide.getNodeType() == ASTNode.SIMPLE_NAME) { SimpleName sn= (SimpleName) rightHandSide; IVariableBinding binding= ASTNodes.getVariableBinding(sn); if (binding != null && binding.isField()) { if (fDescriptor.getType().getFullyQualifiedName().equals(binding.getDeclaringClass().getQualifiedName())) { FieldInfo fieldInfo= getFieldInfo(binding.getName()); if (fieldInfo != null && binding == fieldInfo.pi.getOldBinding()) { return pof.createFieldReadAccess(fieldInfo.pi, parameterName, ast, javaProject, useSuper, null); } } } } } return null; }
private Expression handleSimpleNameAssignment(ASTNode replaceNode, ParameterObjectFactory pof, String parameterName, AST ast, IJavaProject javaProject, boolean useSuper) { if (replaceNode instanceof Assignment) { Assignment assignment= (Assignment) replaceNode; Expression rightHandSide= assignment.getRightHandSide(); if (rightHandSide.getNodeType() == ASTNode.SIMPLE_NAME) { SimpleName sn= (SimpleName) rightHandSide; IVariableBinding binding= ASTNodes.getVariableBinding(sn); if (binding != null && binding.isField()) { if (fDescriptor.getType().getFullyQualifiedName().equals(binding.getDeclaringClass().getQualifiedName())) { FieldInfo fieldInfo= getFieldInfo(binding.getName()); if (fieldInfo != null && binding == fieldInfo.pi.getOldBinding()) { return pof.createFieldReadAccess(fieldInfo.pi, parameterName, ast, javaProject, useSuper, null); } } } } } return null; }
public ExpressionStatement createInitializer(ParameterInfo pi, String paramName, CompilationUnitRewrite cuRewrite) { AST ast= cuRewrite.getAST(); VariableDeclarationFragment fragment= ast.newVariableDeclarationFragment(); fragment.setName(ast.newSimpleName(pi.getOldName())); fragment.setInitializer(createFieldReadAccess(pi, paramName, ast)); VariableDeclarationExpression declaration= ast.newVariableDeclarationExpression(fragment); IVariableBinding variable= pi.getOldBinding(); declaration.setType(importBinding(pi.getNewTypeBinding(), cuRewrite)); int modifiers= variable.getModifiers(); List newModifiers= ast.newModifiers(modifiers); declaration.modifiers().addAll(newModifiers); return ast.newExpressionStatement(declaration); }
private Expression getAssignedValue(ParameterObjectFactory pof, String parameterName, IJavaProject javaProject, RefactoringStatus status, ASTRewrite rewrite, ParameterInfo pi, boolean useSuper, ITypeBinding typeBinding, Expression qualifier, ASTNode replaceNode, ITypeRoot typeRoot) { AST ast= rewrite.getAST(); boolean is50OrHigher= JavaModelUtil.is50OrHigher(javaProject); Expression assignedValue= handleSimpleNameAssignment(replaceNode, pof, parameterName, ast, javaProject, useSuper); if (assignedValue == null) { NullLiteral marker= qualifier == null ? null : ast.newNullLiteral(); Expression fieldReadAccess= pof.createFieldReadAccess(pi, parameterName, ast, javaProject, useSuper, marker); assignedValue= GetterSetterUtil.getAssignedValue(replaceNode, rewrite, fieldReadAccess, typeBinding, is50OrHigher); boolean markerReplaced= replaceMarker(rewrite, qualifier, assignedValue, marker); if (markerReplaced) { switch (qualifier.getNodeType()) { case ASTNode.METHOD_INVOCATION: case ASTNode.CLASS_INSTANCE_CREATION: case ASTNode.SUPER_METHOD_INVOCATION: case ASTNode.PARENTHESIZED_EXPRESSION: status.addWarning(RefactoringCoreMessages.ExtractClassRefactoring_warning_semantic_change, JavaStatusContext.create(typeRoot, replaceNode)); break; } } } return assignedValue; }
private Expression getAssignedValue(ParameterObjectFactory pof, String parameterName, IJavaProject javaProject, RefactoringStatus status, ASTRewrite rewrite, ParameterInfo pi, boolean useSuper, ITypeBinding typeBinding, Expression qualifier, ASTNode replaceNode, ITypeRoot typeRoot) { AST ast= rewrite.getAST(); boolean is50OrHigher= JavaModelUtil.is50OrHigher(javaProject); Expression assignedValue= handleSimpleNameAssignment(replaceNode, pof, parameterName, ast, javaProject, useSuper); if (assignedValue == null) { NullLiteral marker= qualifier == null ? null : ast.newNullLiteral(); Expression fieldReadAccess= pof.createFieldReadAccess(pi, parameterName, ast, javaProject, useSuper, marker); assignedValue= GetterSetterUtil.getAssignedValue(replaceNode, rewrite, fieldReadAccess, typeBinding, is50OrHigher); boolean markerReplaced= replaceMarker(rewrite, qualifier, assignedValue, marker); if (markerReplaced) { switch (qualifier.getNodeType()) { case ASTNode.METHOD_INVOCATION: case ASTNode.CLASS_INSTANCE_CREATION: case ASTNode.SUPER_METHOD_INVOCATION: case ASTNode.PARENTHESIZED_EXPRESSION: status.addWarning(RefactoringCoreMessages.ExtractClassRefactoring_warning_semantic_change, JavaStatusContext.create(typeRoot, replaceNode)); break; } } } return assignedValue; }
public ExpressionStatement createInitializer(ParameterInfo pi, String paramName, CompilationUnitRewrite cuRewrite) { AST ast= cuRewrite.getAST(); VariableDeclarationFragment fragment= ast.newVariableDeclarationFragment(); fragment.setName(ast.newSimpleName(pi.getOldName())); fragment.setInitializer(createFieldReadAccess(pi, paramName, ast, cuRewrite.getCu().getJavaProject(), false, null)); VariableDeclarationExpression declaration= ast.newVariableDeclarationExpression(fragment); IVariableBinding variable= pi.getOldBinding(); declaration.setType(importBinding(pi.getNewTypeBinding(), cuRewrite)); int modifiers= variable.getModifiers(); List<Modifier> newModifiers= ast.newModifiers(modifiers); declaration.modifiers().addAll(newModifiers); return ast.newExpressionStatement(declaration); }
public ExpressionStatement createInitializer(ParameterInfo pi, String paramName, CompilationUnitRewrite cuRewrite, ImportRewriteContext context) { AST ast= cuRewrite.getAST(); VariableDeclarationFragment fragment= ast.newVariableDeclarationFragment(); fragment.setName(ast.newSimpleName(pi.getOldName())); fragment.setInitializer(createFieldReadAccess(pi, paramName, ast, cuRewrite.getCu().getJavaProject(), false, null)); VariableDeclarationExpression declaration= ast.newVariableDeclarationExpression(fragment); IVariableBinding variable= pi.getOldBinding(); declaration.setType(importBinding(pi.getNewTypeBinding(), cuRewrite, context, TypeLocation.LOCAL_VARIABLE)); int modifiers= variable.getModifiers(); List<Modifier> newModifiers= ast.newModifiers(modifiers); declaration.modifiers().addAll(newModifiers); return ast.newExpressionStatement(declaration); }
Expression fieldReadAccess= pof.createFieldReadAccess(pi, parameterName, ast, javaProject, false, null); //qualifier is already there rewrite.replace(name, fieldReadAccess, readGroup);
Expression fieldReadAccess= pof.createFieldReadAccess(pi, parameterName, ast, javaProject, false, null); //qualifier is already there rewrite.replace(name, fieldReadAccess, readGroup);