public static boolean isComplainingAboutArgument(ASTNode selectedNode) { if (!(selectedNode instanceof SimpleName)) return false; SimpleName nameNode= (SimpleName) selectedNode; IBinding binding= nameNode.resolveBinding(); if (binding.getKind() == IBinding.VARIABLE && ((IVariableBinding) binding).isParameter()) return true; VariableDeclaration argDecl= (VariableDeclaration) ASTNodes.getParent(selectedNode, VariableDeclaration.class); if (argDecl != null) binding= argDecl.resolveBinding(); if (binding.getKind() == IBinding.VARIABLE && ((IVariableBinding) binding).isParameter()) return true; return false; }
public static boolean isComplainingAboutArgument(ASTNode selectedNode) { if (!(selectedNode instanceof SimpleName)) return false; SimpleName nameNode= (SimpleName) selectedNode; IBinding binding= nameNode.resolveBinding(); if (binding.getKind() == IBinding.VARIABLE && ((IVariableBinding) binding).isParameter()) return true; VariableDeclaration argDecl= ASTNodes.getParent(selectedNode, VariableDeclaration.class); if (argDecl != null) binding= argDecl.resolveBinding(); if (binding.getKind() == IBinding.VARIABLE && ((IVariableBinding) binding).isParameter()) return true; return false; }
IVariableBinding binding = variable.resolveBinding(); if (!binding.isField() && !binding.isEnumConstant() && !binding.isParameter()) { ILocalVariable local = (ILocalVariable) binding.getJavaElement(); }
/** * Returns the kind of the given binding. * * @param binding variable binding * @return one of the <code>NamingConventions.VK_*</code> constants * @since 3.5 */ private static int getKind(IVariableBinding binding) { if (binding.isField()) return getFieldKind(binding.getModifiers()); if (binding.isParameter()) return NamingConventions.VK_PARAMETER; return NamingConventions.VK_LOCAL; }
/** * Returns the kind of the given binding. * * @param binding variable binding * @return one of the <code>NamingConventions.VK_*</code> constants * @since 3.5 */ private static int getKind(IVariableBinding binding) { if (binding.isField()) return getFieldKind(binding.getModifiers()); if (binding.isParameter()) return NamingConventions.VK_PARAMETER; return NamingConventions.VK_LOCAL; }
private boolean isParameter(ParameterInfo pi, ASTNode node, List<SingleVariableDeclaration> enclosingMethodParameters, String qualifier) { if (node instanceof Name) { Name name= (Name) node; IVariableBinding binding= ASTNodes.getVariableBinding(name); if (binding != null && binding.isParameter()) { return binding.getName().equals(getNameInScope(pi, enclosingMethodParameters)); } else { if (node instanceof QualifiedName) { QualifiedName qn= (QualifiedName) node; return qn.getFullyQualifiedName().equals(JavaModelUtil.concatenateName(qualifier, getNameInScope(pi, enclosingMethodParameters))); } } } return false; }
private boolean isParameter(ParameterInfo pi, ASTNode node, List enclosingMethodParameters, String qualifier) { if (node instanceof Name) { Name name= (Name) node; IVariableBinding binding= ASTNodes.getVariableBinding(name); if (binding != null && binding.isParameter()) { return binding.getName().equals(getNameInScope(pi, enclosingMethodParameters)); } else { if (node instanceof QualifiedName) { QualifiedName qn= (QualifiedName) node; return qn.getFullyQualifiedName().equals(JavaModelUtil.concatenateName(qualifier, getNameInScope(pi, enclosingMethodParameters))); } } } return false; }
private boolean isParameter(ParameterInfo pi, ASTNode node, List<SingleVariableDeclaration> enclosingMethodParameters, String qualifier) { if (node instanceof Name) { Name name= (Name) node; IVariableBinding binding= ASTNodes.getVariableBinding(name); if (binding != null && binding.isParameter()) { return binding.getName().equals(getNameInScope(pi, enclosingMethodParameters)); } else { if (node instanceof QualifiedName) { QualifiedName qn= (QualifiedName) node; return qn.getFullyQualifiedName().equals(JavaModelUtil.concatenateName(qualifier, getNameInScope(pi, enclosingMethodParameters))); } } } return false; }
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 static String findAffectedParameterName(ASTNode selectedNode) { VariableDeclaration argDecl= (selectedNode instanceof VariableDeclaration) ? (VariableDeclaration) selectedNode : (VariableDeclaration) ASTNodes.getParent(selectedNode, VariableDeclaration.class); if (argDecl != null) return argDecl.getName().getIdentifier(); if (selectedNode.getNodeType() == ASTNode.SIMPLE_NAME) { IBinding binding= ((SimpleName) selectedNode).resolveBinding(); if (binding.getKind() == IBinding.VARIABLE && ((IVariableBinding) binding).isParameter()) return ((SimpleName) selectedNode).getIdentifier(); } return null; }
public StructuralEntity ensureStructuralEntityFromExpression(Expression expression) { if (expression instanceof SimpleName) { IBinding simpleNameBinding = ((SimpleName) expression).resolveBinding(); if (simpleNameBinding instanceof IVariableBinding) { IVariableBinding binding = ((IVariableBinding) simpleNameBinding).getVariableDeclaration(); if (binding.isField()) return ensureAttributeForVariableBinding(binding); if (binding.isParameter()) return ensureParameterWithinCurrentMethodFromVariableBinding(binding); if (binding.isEnumConstant()) return ensureEnumValueFromVariableBinding(binding); } } return null; }
private static boolean canAddFinal(IBinding binding, SimpleName name, ASTNode declNode) { if (!(binding instanceof IVariableBinding)) return false; IVariableBinding varbinding= (IVariableBinding)binding; if (Modifier.isFinal(varbinding.getModifiers())) return false; ASTNode parent= ASTNodes.getParent(declNode, VariableDeclarationExpression.class); if (parent != null && ((VariableDeclarationExpression)parent).fragments().size() > 1) return false; if (varbinding.isField() && !Modifier.isPrivate(varbinding.getModifiers())) return false; if (varbinding.isParameter()) { ASTNode varDecl= declNode.getParent(); if (varDecl instanceof MethodDeclaration) { MethodDeclaration declaration= (MethodDeclaration)varDecl; if (declaration.getBody() == null) return false; } } return true; }
public static String removePrefixAndSuffixForVariable(IJavaProject project, IVariableBinding binding) { if (binding.isEnumConstant()) { return binding.getName(); } else if (binding.isField()) { if (Modifier.isStatic(binding.getModifiers()) && Modifier.isFinal(binding.getModifiers())) { return getCamelCaseFromUpper(binding.getName()); } else { return NamingConventions.removePrefixAndSuffixForFieldName(project, binding.getName(), binding.getModifiers()); } } else if (binding.isParameter()) { return NamingConventions.removePrefixAndSuffixForArgumentName(project, binding.getName()); } else { return NamingConventions.removePrefixAndSuffixForLocalVariableName(project, binding.getName()); } }
private static boolean canAddFinal(IBinding binding, ASTNode declNode) { if (!(binding instanceof IVariableBinding)) return false; IVariableBinding varbinding= (IVariableBinding)binding; int modifiers= varbinding.getModifiers(); if (Modifier.isFinal(modifiers) || Modifier.isVolatile(modifiers) || Modifier.isTransient(modifiers)) return false; ASTNode parent= ASTNodes.getParent(declNode, VariableDeclarationExpression.class); if (parent != null && ((VariableDeclarationExpression)parent).fragments().size() > 1) return false; if (varbinding.isField() && !Modifier.isPrivate(modifiers)) return false; if (varbinding.isParameter()) { ASTNode varDecl= declNode.getParent(); if (varDecl instanceof MethodDeclaration) { MethodDeclaration declaration= (MethodDeclaration)varDecl; if (declaration.getBody() == null) return false; } } return true; }
private static boolean getConvertVarTypeToResolvedTypeProposal(IInvocationContext context, ASTNode node, Collection<ICommandAccess> proposals) { CompilationUnit astRoot= context.getASTRoot(); boolean isValid= ASTNodes.isVarType(node, astRoot); if (!isValid) { return false; } if (!(node instanceof SimpleName)) { return false; } SimpleName name= (SimpleName) node; IBinding binding= name.resolveBinding(); if (!(binding instanceof IVariableBinding)) { return false; } IVariableBinding varBinding= (IVariableBinding) binding; if (varBinding.isField() || varBinding.isParameter()) { return false; } ITypeBinding typeBinding= varBinding.getType(); if (typeBinding == null || typeBinding.isAnonymous() || typeBinding.isIntersectionType() || typeBinding.isWildcardType()) { return false; } proposals.add(new TypeChangeCorrectionProposal(context.getCompilationUnit(), varBinding, astRoot, typeBinding, false, IProposalRelevance.CHANGE_VARIABLE)); return true; }
/** * Creates a new promote temp to field refactoring. * @param declaration the variable declaration node to convert to a field */ public PromoteTempToFieldRefactoring(VariableDeclaration declaration) { Assert.isTrue(declaration != null); fTempDeclarationNode= declaration; IVariableBinding resolveBinding= declaration.resolveBinding(); Assert.isTrue(resolveBinding != null && !resolveBinding.isParameter() && !resolveBinding.isField()); ASTNode root= declaration.getRoot(); Assert.isTrue(root instanceof CompilationUnit); fCompilationUnitNode= (CompilationUnit) root; IJavaElement input= fCompilationUnitNode.getJavaElement(); Assert.isTrue(input instanceof ICompilationUnit); fCu= (ICompilationUnit) input; fSelectionStart= declaration.getStartPosition(); fSelectionLength= declaration.getLength(); fFieldName= ""; //$NON-NLS-1$ fVisibility= Modifier.PRIVATE; fDeclareStatic= false; fDeclareFinal= false; fInitializeIn= INITIALIZE_IN_METHOD; fLinkedProposalModel= null; }
/** * Creates a new promote temp to field refactoring. * @param declaration the variable declaration node to convert to a field */ public PromoteTempToFieldRefactoring(VariableDeclaration declaration) { Assert.isTrue(declaration != null); fTempDeclarationNode= declaration; IVariableBinding resolveBinding= declaration.resolveBinding(); Assert.isTrue(resolveBinding != null && !resolveBinding.isParameter() && !resolveBinding.isField()); ASTNode root= declaration.getRoot(); Assert.isTrue(root instanceof CompilationUnit); fCompilationUnitNode= (CompilationUnit) root; IJavaElement input= fCompilationUnitNode.getJavaElement(); Assert.isTrue(input instanceof ICompilationUnit); fCu= (ICompilationUnit) input; fSelectionStart= declaration.getStartPosition(); fSelectionLength= declaration.getLength(); fFieldName= ""; //$NON-NLS-1$ fVisibility= Modifier.PRIVATE; fDeclareStatic= false; fDeclareFinal= false; fInitializeIn= INITIALIZE_IN_METHOD; fLinkedProposalModel= null; }
/** * Creates a new promote temp to field refactoring. * @param declaration the variable declaration node to convert to a field */ public PromoteTempToFieldRefactoring(VariableDeclaration declaration) { Assert.isTrue(declaration != null); fTempDeclarationNode= declaration; IVariableBinding resolveBinding= declaration.resolveBinding(); Assert.isTrue(resolveBinding != null && !resolveBinding.isParameter() && !resolveBinding.isField()); ASTNode root= declaration.getRoot(); Assert.isTrue(root instanceof CompilationUnit); fCompilationUnitNode= (CompilationUnit) root; IJavaElement input= fCompilationUnitNode.getJavaElement(); Assert.isTrue(input instanceof ICompilationUnit); fCu= (ICompilationUnit) input; fSelectionStart= declaration.getStartPosition(); fSelectionLength= declaration.getLength(); fFieldName= ""; //$NON-NLS-1$ fVisibility= Modifier.PRIVATE; fDeclareStatic= false; fDeclareFinal= false; fInitializeIn= INITIALIZE_IN_METHOD; fLinkedProposalModel= null; }