overridden= Bindings.findMethodInType(curr, method.getName(), method.getParameterTypes());
overriddenClass= Bindings.findMethodInType(curr, method.getName(), method.getParameterTypes());
	public static void addOverridesFinalProposals(IInvocationContext context, IProblemLocation problem, Collection proposals) throws JavaModelException {		ICompilationUnit cu= context.getCompilationUnit();		ASTNode selectedNode= problem.getCoveringNode(context.getASTRoot());		if (!(selectedNode instanceof MethodDeclaration)) {			return;		}				IMethodBinding method= ((MethodDeclaration) selectedNode).resolveBinding();		ITypeBinding curr= method.getDeclaringClass();		IMethodBinding overridden= null;		while (overridden == null && curr.getSuperclass() != null) {			curr= curr.getSuperclass();			overridden= Bindings.findMethodInType(curr, method.getName(), method.getParameterTypes());		}		if (overridden == null) {			return;		}				ICompilationUnit targetCU= ASTResolving.findCompilationUnitForBinding(cu, context.getASTRoot(), curr);		if (targetCU != null) {			String methodName= curr.getName() + '.' + overridden.getName();						String label= CorrectionMessages.getFormattedString("ModifierCorrectionSubProcessor.changemethodtononfinal.description", methodName); //$NON-NLS-1$			Image image= JavaPluginImages.get(JavaPluginImages.IMG_CORRECTION_CHANGE);			proposals.add(new ModifierChangeCompletionProposal(label, targetCU, overridden, selectedNode, 0, Modifier.FINAL, 9, image));		}	}