private static CompilationUnit findCUForMethod(CompilationUnit compilationUnit, ICompilationUnit cu, IMethodBinding methodBinding) { ASTNode methodDecl= compilationUnit.findDeclaringNode(methodBinding.getMethodDeclaration()); if (methodDecl == null) { // is methodDecl defined in another CU? ITypeBinding declaringTypeDecl= methodBinding.getDeclaringClass().getTypeDeclaration(); if (declaringTypeDecl.isFromSource()) { ICompilationUnit targetCU= null; try { targetCU= ASTResolving.findCompilationUnitForBinding(cu, compilationUnit, declaringTypeDecl); } catch (JavaModelException e) { /* can't do better */ } if (targetCU != null) { return ASTResolving.createQuickFixAST(targetCU, null); } } return null; } return compilationUnit; }
ICompilationUnit targetCu= cu; if (declaringType.isFromSource()) { targetCu= ASTResolving.findCompilationUnitForBinding(cu, astRoot, declaringType);
ICompilationUnit targetCu= null; if (declaringType.isFromSource()) { targetCu= ASTResolving.findCompilationUnitForBinding(cu, astRoot, declaringType);
private static void addNewFieldProposals(ICompilationUnit cu, CompilationUnit astRoot, ITypeBinding binding, ITypeBinding declaringTypeBinding, SimpleName simpleName, boolean isWriteAccess, Collection proposals) throws JavaModelException { // new variables ICompilationUnit targetCU; ITypeBinding senderDeclBinding; if (binding != null) { senderDeclBinding= binding.getTypeDeclaration(); targetCU= ASTResolving.findCompilationUnitForBinding(cu, astRoot, senderDeclBinding); } else { // binding is null for accesses without qualifier senderDeclBinding= declaringTypeBinding; targetCU= cu; } if (!senderDeclBinding.isFromSource() || targetCU == null) { return; } boolean mustBeConst= ASTResolving.isInsideModifiers(simpleName); addNewFieldForType(targetCU, binding, senderDeclBinding, simpleName, isWriteAccess, mustBeConst, proposals); if (binding == null && senderDeclBinding.isNested()) { ASTNode anonymDecl= astRoot.findDeclaringNode(senderDeclBinding); if (anonymDecl != null) { ITypeBinding bind= Bindings.getBindingOfParentType(anonymDecl.getParent()); if (!bind.isAnonymous()) { addNewFieldForType(targetCU, bind, bind, simpleName, isWriteAccess, mustBeConst, proposals); } } } }
public static void addAddSafeVarargsToDeclarationProposals(IInvocationContext context, IProblemLocation problem, Collection<ICommandAccess> proposals) { if (!JavaModelUtil.is17OrHigher(context.getCompilationUnit().getJavaProject())) return; ASTNode coveringNode= problem.getCoveringNode(context.getASTRoot()); IMethodBinding methodBinding; if (coveringNode instanceof MethodInvocation) { methodBinding= ((MethodInvocation) coveringNode).resolveMethodBinding(); } else if (coveringNode instanceof ClassInstanceCreation) { methodBinding= ((ClassInstanceCreation) coveringNode).resolveConstructorBinding(); } else { return; } if (methodBinding == null) return; String label= Messages.format(CorrectionMessages.VarargsWarningsSubProcessor_add_safevarargs_to_method_label, methodBinding.getName()); ITypeBinding declaringType= methodBinding.getDeclaringClass(); CompilationUnit astRoot= (CompilationUnit) coveringNode.getRoot(); if (declaringType != null && declaringType.isFromSource()) { try { ICompilationUnit targetCu= ASTResolving.findCompilationUnitForBinding(context.getCompilationUnit(), astRoot, declaringType); if (targetCu != null) { AddSafeVarargsProposal proposal= new AddSafeVarargsProposal(label, targetCu, null, methodBinding.getMethodDeclaration(), IProposalRelevance.ADD_SAFEVARARGS); proposals.add(proposal); } } catch (JavaModelException e) { return; } } }
private static void addNewFieldProposals(ICompilationUnit cu, CompilationUnit astRoot, ITypeBinding binding, ITypeBinding declaringTypeBinding, SimpleName simpleName, boolean isWriteAccess, Collection proposals) throws JavaModelException { // new variables ICompilationUnit targetCU; ITypeBinding senderDeclBinding; if (binding != null) { senderDeclBinding= binding.getTypeDeclaration(); targetCU= ASTResolving.findCompilationUnitForBinding(cu, astRoot, senderDeclBinding); } else { // binding is null for accesses without qualifier senderDeclBinding= declaringTypeBinding; targetCU= cu; } if (!senderDeclBinding.isFromSource() || targetCU == null) { return; } boolean mustBeConst= ASTResolving.isInsideModifiers(simpleName); addNewFieldForType(targetCU, binding, senderDeclBinding, simpleName, isWriteAccess, mustBeConst, proposals); if (binding == null && senderDeclBinding.isNested()) { ASTNode anonymDecl= astRoot.findDeclaringNode(senderDeclBinding); if (anonymDecl != null) { ITypeBinding bind= Bindings.getBindingOfParentType(anonymDecl.getParent()); if (!bind.isAnonymous()) { addNewFieldForType(targetCU, bind, bind, simpleName, isWriteAccess, mustBeConst, proposals); } } } }
private static void addNewFieldProposals(ICompilationUnit cu, CompilationUnit astRoot, ITypeBinding binding, ITypeBinding declaringTypeBinding, SimpleName simpleName, boolean isWriteAccess, Collection<ICommandAccess> proposals) throws JavaModelException { // new variables ICompilationUnit targetCU; ITypeBinding senderDeclBinding; if (binding != null) { senderDeclBinding= binding.getTypeDeclaration(); targetCU= ASTResolving.findCompilationUnitForBinding(cu, astRoot, senderDeclBinding); } else { // binding is null for accesses without qualifier senderDeclBinding= declaringTypeBinding; targetCU= cu; } if (!senderDeclBinding.isFromSource() || targetCU == null) { return; } boolean mustBeConst= ASTResolving.isInsideModifiers(simpleName); addNewFieldForType(targetCU, binding, senderDeclBinding, simpleName, isWriteAccess, mustBeConst, proposals); if (binding == null && senderDeclBinding.isNested()) { ASTNode anonymDecl= astRoot.findDeclaringNode(senderDeclBinding); if (anonymDecl != null) { ITypeBinding bind= Bindings.getBindingOfParentType(anonymDecl.getParent()); if (!bind.isAnonymous()) { addNewFieldForType(targetCU, bind, bind, simpleName, isWriteAccess, mustBeConst, proposals); } } } }
if (method == null) { ITypeBinding typeDecl= curr.getTypeDeclaration(); ICompilationUnit targetCU= ASTResolving.findCompilationUnitForBinding(cu, astRoot, typeDecl); if (targetCU != null) { String label= Messages.format(CorrectionMessages.QuickAssistProcessor_createmethodinsuper_description, new String[] { curr.getName(), binding.getName() });
ITypeBinding senderDeclBinding= binding.getTypeDeclaration(); ICompilationUnit targetCU= ASTResolving.findCompilationUnitForBinding(cu, astRoot, senderDeclBinding); if (targetCU != null) { String label;
ICompilationUnit targetCU= ASTResolving.findCompilationUnitForBinding(cu, astRoot, declaringType); if (targetCU != null) { IMethodBinding methodDecl= methodBinding.getMethodDeclaration();
ITypeBinding senderDeclBinding= binding.getTypeDeclaration(); ICompilationUnit targetCU= ASTResolving.findCompilationUnitForBinding(cu, astRoot, senderDeclBinding); if (targetCU != null) { String label;
if (method == null) { ITypeBinding typeDecl= curr.getTypeDeclaration(); ICompilationUnit targetCU= ASTResolving.findCompilationUnitForBinding(cu, astRoot, typeDecl); if (targetCU != null) { String label= Messages.format(CorrectionMessages.QuickAssistProcessor_createmethodinsuper_description, new String[] { BasicElementLabels.getJavaElementName(curr.getName()), BasicElementLabels.getJavaElementName(binding.getName()) });
ITypeBinding targetDecl= targetBinding.getTypeDeclaration(); ICompilationUnit targetCU= ASTResolving.findCompilationUnitForBinding(cu, astRoot, targetDecl); if (targetCU != null) { String[] args= new String[] { ASTResolving.getMethodSignature( ASTResolving.getTypeSignature(targetDecl), getParameterTypes(arguments), false) };
ITypeBinding targetDecl= targetBinding.getTypeDeclaration(); ICompilationUnit targetCU= ASTResolving.findCompilationUnitForBinding(cu, astRoot, targetDecl); if (targetCU != null) { String[] args= new String[] { ASTResolving.getMethodSignature( ASTResolving.getTypeSignature(targetDecl), getParameterTypes(arguments), false) };
ICompilationUnit targetCU= ASTResolving.findCompilationUnitForBinding(cu, astRoot, annotBinding); if (targetCU != null) { String label= Messages.format(CorrectionMessages.UnresolvedElementsSubProcessor_UnresolvedElementsSubProcessor_createattribute_description, memberName);
ICompilationUnit targetCU= ASTResolving.findCompilationUnitForBinding(cu, astRoot, annotBinding); if (targetCU != null) { String label= Messages.format(CorrectionMessages.UnresolvedElementsSubProcessor_UnresolvedElementsSubProcessor_createattribute_description, memberName);
targetCu= ASTResolving.findCompilationUnitForBinding(cu, astRoot, overridenDeclType);
ICompilationUnit targetCU= ASTResolving.findCompilationUnitForBinding(cu, astRoot, annotBinding); if (targetCU != null) { String label= Messages.format(CorrectionMessages.UnresolvedElementsSubProcessor_UnresolvedElementsSubProcessor_createattribute_description, BasicElementLabels.getJavaElementName(memberName));
ICompilationUnit targetCU= ASTResolving.findCompilationUnitForBinding(cu, context.getASTRoot(), overriddenDecl.getDeclaringClass()); if (targetCU != null) { String methodName= curr.getName() + '.' + overriddenInClass.getName();
targetCu= ASTResolving.findCompilationUnitForBinding(cu, astRoot, overridenDeclType); if (targetCu != null && ASTResolving.isUseableTypeInContext(returnType, overriddenDecl, false)) { TypeChangeCorrectionProposal proposal= new TypeChangeCorrectionProposal(targetCu, overriddenDecl, astRoot, returnType, false, IProposalRelevance.CHANGE_RETURN_TYPE_OF_OVERRIDDEN);